VBA練習問題
VBA100本ノック 73本目:新規ブックにボタン作成しマクロ登録

VBAを100本の練習問題で鍛えます
公開日:2021-01-23 最終更新日:2021-01-24

VBA100本ノック 73本目:新規ブックにボタン作成しマクロ登録


新規ブックの先頭シートにフォームコントロールのボタンを作成しマクロを登録する問題です。


ツイッター連動企画です。
ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。

VBAテスト用のサンプルデータはご自身でご用意ください。


出題

出題ツイートへのリンク

#VBA100本ノック 73本目
新規ブックを作成し、先頭シートにフォームコントロールのボタンを作成します。
・Captionは「テスト」
・登録するマクロはThisWorkbookのプロシージャー「test」
・位置および大きさは任意
新規ブックはThisWorkbookと同一フォルダにxlsxで保存。

マクロ VBA 100本ノック


VBA作成タイム

この下に頂いた回答へのリンクと解説を掲載しています。
途中まででも良いので、できるだけ自分でVBAを書いてみましょう。


他の人の回答および解説を見て、書いたVBAを見直してみましょう。


頂いた回答

解説

マクロ記録がそのまま使えるのでVBAを書くのに困ることは無いと思います。
しかし実際に書く時にButtonsが出なくて?となった人もいるかもしれません。
Buttonsは隠しメンバーになっています。
これを表示すれば候補も出てくるようになります。

マクロ VBA 100本ノック

マクロ VBA 100本ノック

マクロ VBA 100本ノック


ここでは意図的にオブジェクト変数に入れてみました。
ボタンには相対パスで登録されるので、位置関係が崩れなければファイルを移動してもボタンは使用できます。
記事にVBAを掲載しました。補足はありません。

Sub VBA100_73_01()
  Dim wb As Workbook, ws As Worksheet, rng As Range
  Set wb = Workbooks.Add
  Set ws = wb.Worksheets(1)
  Set rng = ws.Range("B2")
  
  Dim btn As Button
  Set btn = ws.Buttons.Add(rng.Left + 10, rng.Top + 10, 80, 30)
  btn.Caption = "テスト"
  btn.OnAction = "'" & ThisWorkbook.Name & "'!test"
  
  Application.DisplayAlerts = False
  wb.SaveAs Replace(ThisWorkbook.FullName, "xlsm", "_test.xlsx")
  wb.Close
  Application.DisplayAlerts = True
End Sub


補足

補足はありません。


サイト内関連ページ

第136回.フォームコントロール
・フォームコントロールを追加する ・フォームコントロールを削除/編集/情報取得 ・フォームコントロールを特定する方法 ・フォームコントロールの最後に
第137回.ActiveXコントロール
・ActiveXコントロールを追加する ・ActiveXコントロールを削除/編集 ・ActiveXコントロールの設定/情報取得 ・イベントプロシージャーの作成 ・ActiveXコントロールの最後に




同じテーマ「VBA100本ノック」の記事

70本目:ステータスバーに1秒ごとに時刻が表示

・出題 ・頂いた回答 ・解説 ・補足 ・追記 ・サイト内関連ページ
71本目:パワーポイントへグラフを貼り付け
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
72本目:ITをDXに変換(文字列操作)
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
73本目:新規ブックにボタン作成しマクロ登録
74本目:1シート複数表をDB形式に変換
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
75本目:ログインフォームの作成
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
76本目:ボタンの表示名の位置へ移動
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
77本目:シート挿入イベント
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
78本目:グラフのデータ範囲拡張
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
79本目:Wordにセル範囲を図として挿入
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
80本目:読み取り専用で保存できないブックにする
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ


新着記事NEW ・・・新着記事一覧を見る

エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ