第6回.とにかく書いてみよう(Sub,End Sub)
それでは、とにかくマクロVBAを書いてみましょう。
VBEで実際にマクロを書いてみましょう
そして、1行空けてその下に、End Subが追加されます。
1つの機能を持った1つのマクロになります。
練習1
これがマクロの名前、つまりプロシージャー名です。
プロシージャーの詳細については後述します。
上の例では何も中身を書いていませんので、マクロの器だけ用意した何もしないマクロという事になります。
それには、「TAB」キーを押します。
「TAB」キーは(大抵のPCでは)キーボードの一番左の上から3番目です。
マクロの記述部分は、以下のように枠で囲った中に表示します。
表示しているページの他の説明文と区別しやすいようにです。
Sub 練習1()
Range("A1") = "おはよう!"
End
Sub
これは、ワークシートのA列1行のセルに、「おはよう!」という文字を入れるマクロになります。
そして、Enterすると、
rangeがRangeと、先頭が大文字に変換されます。
これは、Rangeが正しい記述であり、自動で変換されたという事です。
しかし、スペルが間違っていて、rengeと入れていれば、大文字には変換されません。
そこで、タイピングする時は小文字で入力します。
これは、タイピングの手間の問題もありますし、スペルミスに気付きやすくなる利点があります。
"a1"と入力しても、"A1"とは変換されません。
このA1はセル番地なので、
シート上の関数と同じ見た目になるように大文字で入れる事をお勧めします。
=の前後は、半角空白を特に入力する必要はありません。
もちろん=の前後に半角空白を入力しても問題ありません。
プロシージャーについて
プロシージャーは、同じ標準モジュールに複数書くことができます。
複数のプロシージャーを書くとなると同じ名前では区別がつかなくなりますし、そもそも名前は何でも良いという訳にはいきません。
プロシージャー名の付け方にはいくつかの制限があります。
✅英数字(全角半角)、漢字、記号はアンダーバー(_)だけ使える、空白(スペース)は使えない
✅先頭には、数字やアンダーバー(_)は使えない、英文字か漢字で始める
✅使えない予約語(VBAが特別に使っている単語)がある
✅長さは半角で255文字まで
✅1つの標準モジュール内では、同じ名前は付けられない
「予約語」といったものもあり難しく感じてしまうかもしれません。
ですが、予約語を使ったり規則に反する場合は赤字でエラーになりますので、絶対に覚えなければVBAを書けないという事ではありませんので安心してください。
また、漢字を使って日本語で書けば上記の制限はほとんど気にならないはずです。
漢字を使う事を否定する意見もありますが、VBAでは特に気にする必要はないでしょう。
自分自身で分かり易い名前を付けてください。
複数のプロシージャーを書くとなると同じ名前では区別がつかなくなりますし、そもそも名前は何でも良いという訳にはいきません。
プロシージャー名の付け方にはいくつかの制限があります。
✅先頭には、数字やアンダーバー(_)は使えない、英文字か漢字で始める
✅使えない予約語(VBAが特別に使っている単語)がある
✅長さは半角で255文字まで
✅1つの標準モジュール内では、同じ名前は付けられない
ですが、予約語を使ったり規則に反する場合は赤字でエラーになりますので、絶対に覚えなければVBAを書けないという事ではありませんので安心してください。
漢字を使う事を否定する意見もありますが、VBAでは特に気にする必要はないでしょう。
自分自身で分かり易い名前を付けてください。
同じテーマ「マクロVBA入門」の記事
・マクロ記録の限界 ・「マクロの記録」の操作方法 ・個人用マクロブック ・VBAでの書き方が分からない時に調べる方法
第4回.マクロはどこに書くの(VBEの起動)・「Visual Basic Editor」の表示方法 ・標準モジュールの挿入 ・「Module1」の名称変更 ・「Module1」の削除
第5回.VBEのオプション設定(Option Explicit)マクロを書き始める前に、出来れば設定しておいた方が良いオプションがあります。いえ、絶対に設定しておかなければならないVBEのオプション設定です、必ず最初に設定しておいてください。VBEの「ツール」→「オプション」以下の画面が出ます。
第6回.とにかく書いてみよう(Sub,End Sub)第7回.マクロを実行するには(F5)
・VBEの画面で実行 ・ワークシートの開発タブで実行 ・ボタンや図形に登録して実行 ・マクロを実行すると
第8回.セルに文字を入れるとは(RangeオブジェクトのValueプロパティ)・前回書いたVBAコード ・セル番地ついて ・= 記号について ・値はValue ・オブジェクトとは、プロパティとは ・セルに文字を入れるとは
第9回.Rangeでのセルの指定方法・複数のセル(矩形のセル範囲) ・列全体 ・行全体 ・名前定義のセル範囲 ・特殊な指定方法 ・マクロVBAで良く使う書き方
第10回.Range以外の指定方法(Cells,Rows,Columns)・Cells(行番号, 列番号) ・Rows(行番号) ・Columns(列番号) ・RangeとCellsの関連記事
第11回.RangeとCellsの使い方・RangeとCellsの基本的な使い分け方 ・固定セル(固定位置)の指定 ・Rangeに変数は使わないようにします ・1つの(VBAで位置を変化させる)セルを指定する場合 ・セル範囲(複数セル)を指定する場合 ・複数行全体、複数列全体の指定 ・RangeとCellsの使い分け方のまとめ ・RangeとCellsの基本の関連記事 ・RangeとCellsの応用の関連記事
第38回.セルに計算式を設定(Formula)・計算式を設定できるプロパティ ・Valueプロパティ ・Formulaプロパティ , FormulaLocalプロパティ ・FormulaR1C1プロパティ , FormulaR1C1Localプロパティ ・R1C1参照形式 ・Localが付くプロパティについて ・それぞれの違い(Localは除く) ・何故、こんなに多くのプロパティが存在しているのか ・R1C1形式を使うメリット ・たった1行のVBAで複数のセルに計算式を入れる
第12回.変数宣言のDimとデータ型・データ型 ・変数の使い方 ・変数名の規則 ・良く使われる変数名 ・自動型変換、暗黙の型変換 ・変数宣言の必要性 ・Dim変数宣言のまとめ
新着記事NEW ・・・新着記事一覧を見る
ブール型(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)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。