Excelに「押すだけ」のボタンを付ける方法 ― いつもの手作業をマクロのボタン1つにする
シクミヤの
- ボタンを
付ける 5つの 手順 - 手作業を
ボタン1つに する 例と コード - ボタンが
押せない ときの 直し方
ボタン1つで変わること
備品の
備品記録.xlsm /
| A | B | C | |
|---|---|---|---|
| 1 | 日付 | 11/5 | |
| 2 | 品名 | 封筒 | |
| 3 | 金額 | 800 | 一覧に |
備品記録.xlsm /
| A | B | C | |
|---|---|---|---|
| 1 | 日付 | 品名 | 金額 |
| 2 | 11/4 | コピー用紙 | 1,200 |
| 3 | 11/4 | トナー | 6,500 |
| 4 | 11/5 | 封筒 | 800 |
ボタン以外の
マクロの作り方は2つ
- 操作を
そのまま 覚えさせる - コードを
書かない - 毎回
同じ セルを 使う 作業に 向く
- 下の
コードを コピーして 使う - 「次に
空いている 行」を 探せる - 行が
増える 作業に 向く
記録で作るとき
コードを貼るとき
例の
コードを見る(コピーして使えます)
Sub AddRecord() Dim nextRow As Long With Worksheets("入力") If WorksheetFunction.CountA(.Range("B1:B3")) < 3 Then ' 空欄があれば止める MsgBox "空いている欄があります" Exit Sub End If nextRow = Worksheets("一覧").Cells(Rows.Count, "A").End(xlUp).Row + 1 ' 次に空いている行 Worksheets("一覧").Cells(nextRow, "A").Value = .Range("B1").Value ' 日付 Worksheets("一覧").Cells(nextRow, "B").Value = .Range("B2").Value ' 品名 Worksheets("一覧").Cells(nextRow, "C").Value = .Range("B3").Value ' 金額 .Range("B1:B3").ClearContents ' 入力欄を空にする End With End Sub
ボタンを付ける5つの手順
- [開発]
タブを 出す 最初は
隠れています。 [ファイル] → [オプション] → [リボンの ユーザー設定]で [開発]に チェックを 入れます。 - マクロを
入れる 記録で
作るか、 Alt+F11→[挿入] → [標準モジュール]に コードを 貼ります。 - ボタンを
置く [開発]
→ [挿入] → フォームコントロールの [ボタン]を 選び、 シートを クリックします。 ホームデータ開発マクロ挿入「開発」 タブの 「挿入」を 押す (画面の イメージ) - マクロを
選ぶ 開いた
画面で AddRecordを選び、 OKを 押します。 マクロの登録 マクロ名AddRecordOK画面の 名前は 版に より 「マクロの 割り当て」 (画面の イメージ) - 文字を
変えて .xlsm で 保存する ボタンを
右クリック → [テキストの 編集]で、 「一覧に 追加」のように 直します。 保存は 「Excel マクロ有効ブック」を 選びます。
ボタンが押せないときの直し方
| 起きている | 直し方 |
|---|---|
| 押すと | 選択中の |
| 「マクロが | 信頼できる |
| 赤い | 信頼できる |
| 保存し直したら、 | .xlsx には |
| 押しても | シートの |
| ブラウザや | パソコン版の |
| ActiveXの | [デザインモード]を |
会社の
どのボタンを使うか
よくある質問
登録したマクロを変えるには?
ボタンを
図形をボタンの代わりにできますか?
できます。
ボタンを印刷に出さないようにできますか?
できます。
記事のコードはExcelで動作を確かめましたか?
当記事を
まとめ
- [開発]
→ [挿入] → [ボタン]で 置き、マクロを 登録する だけで押して 動く - 毎回
同じ セルなら 記録、 行が 増える 表なら コードで 作る - 保存は
必ず .xlsm。 .xlsx では マクロが 残らない - 押せない
ときは、 選択中か、 マクロの 無効か、 保存の 形式から 確かめる
参考にした公式ページ
- フォームまたは
コントロール ボタンに マクロを 割り 当てる (Microsoft サポート) - [開発]
タブを 表示する (Microsoft サポート) - マクロ記録で
作業を 自動化する (Microsoft サポート) - Excel で
マクロを 実行する (Microsoft サポート) - フォーム コントロールや
ActiveX コントロールを 選択できない (Microsoft サポート) - Microsoft 365 ファイルで
マクロを 有効または 無効に する (Microsoft サポート) - インターネットからの
マクロは 既定で ブロックされます (Microsoft Learn) - Excel で
サポートしている ファイル形式 (Microsoft サポート) - Excel for the web で
VBA マクロを 操作する (Microsoft サポート) - 操作を
元に 戻す、 取り消した 操作を もう 一度 行う (Microsoft サポート) - Worksheet.Protect メソッド
(Microsoft Learn) - Range.End プロパティ
(Microsoft Learn) - WorksheetFunction.CountA メソッド
(Microsoft Learn) - Range.ClearContents メソッド
(Microsoft Learn) - MsgBox 関数
(Microsoft Learn)