ALL EXCEL Program Tips VBA

【解説付】VBA-ワークシートを制御する方法│完全理解│【EXCEL VBA】

本記事で出来ること

本記事では以下のことが分かります。

-分かること-
VBAでEXCELワークシート制御する方法

ワークシート制御を簡単なコードから理解

さっそくですが、ワークシート操作について、
「Range(“A1”).value = “おはよう”」で説明します。
 
実は、
「Range(“A1”).value = “おはよう”」は
VBAの自動判別機能により、
ActiveSheet.Range(“A1”).Value = “おはよう”」
と解釈され、コードが実行されています。
 
ActiveSheet って何?となりますが、
現在アクティブなEXCELシート という意味になります。
 
 
このActiveSheetの箇所を
Worksheets(“シート名”) 」で置き換えてあげれば、
自在にEXCELシートを行き来したデータのやり取りが可能となります。
 
例えば、このような感じです。 

当然 シート名がSheet2 だった場合は、以下の通りです。

ワークシート自体の制御方法(追加・削除など)

EXCELのワークシートの操作も可能です。
例えば、シートの追加・シートの削除です。
 
使用例は、↓の「例」に記載してますので、自分が使う際は参考にして下さい。
 

操作内容 コード 属性 例の意味
選択 Select メソッド(SV型) - -
選択 Activate メソッド(SV型) - -
名前変更 Name プロパティ Worksheets("Sheet1").Name = "新シート名" Sheet1を"新シート名"にする
削除 Delete メソッド(SV型) Worksheets("Sheet1").Delete Sheet1を削除
追加
Add
メソッド(SV型) Worksheets.Add 先頭にシートを追加
メソッド(SVO型) Worksheets.Add Before:=Sheets("シート名") "シート名"の前に追加
メソッド(SVO型) Worksheets.Add After:=Sheets("シート名") "シート名"の後ろに追加
移動
Move
メソッド(SVO型) Worksheets.Move Before:=Sheets("シート名") "シート名"の前に移動
メソッド(SVO型) Worksheets.Move After:=Sheets("シート名") "シート名"の後ろに移動
コピー
Copy
メソッド(SVO型) Worksheets.Copy Before:=Sheets("シート名") "シート名"の前にコピー
メソッド(SVO型) Worksheets.Copy After:=Sheets("シート名") "シート名"の後ろにコピー

補足:シートを削除(Delete)する場合の警告を出さない方法

手作業でシート削除する際、エラーアラートが出ると思います。
 
VBAシートを削除する際も同様で、エラーアラートが発生します。
 
エラーアラートの発生都度、
自動化した作業が止まってしまうのは本意ではないため、
エラーアラートが発生しない設定をコード内に埋め込みます。
 
<対象コード>
Application.DisplayAlerts は、
EXCELというアプリケーションの画面警告 という意味で、
Falseは「無効化」、Trueは「有効化」となります。
プロパティ構文(※1)の考え方で十分理解できますね。
 ※1:左辺を右辺の状態にする。
 
実際の使用例を紹介します。
この方法はそのままマネることをお勧めします。
(偉大なる先日たちの置き土産です)
 
<実例>
なぜ最後に「エラーアラートが出るように戻しておく」のかというと、
手作業のEXCEL操作時も設定は有効になっているからになります。
 
エラーアラートが無効なままにしておくと、
手作業誤クリックした際、直接 削除されてしまい危険ですので
エラーアラートを有効にすることを忘れないように注意しましょう。

補足:Cells/Rangeの理解が曖昧な人向け

これまでの説明で、
Rangeが登場しましたが、Rangeを知らない人からしたら意味不明だったかもしれません
 
RangeやCellsはEXCELのセルを特定する構文となり
VBAにおいて最重要-理解すべき基本知識の1つです。 
曖昧に理解している人はいませんでしょうか? 
 
以下の記事に RangeCellsの解説をしているので、
不安に思われた方は リンク先で確認して下さいませ。
(早い人は 5分で読めると思います。)
 
確認後に、再度 本投稿を読んでもらえれば、腑に落ちると思います。

終わりに

いかがでしたでしょうか。
 
 
トライ&エラーを重ねて プログラムは理解が深まっていくので、
積極的に挑戦し理解を深めていきましょう。
 
こちらは宣伝になりますが、
もしVBA全般のルール・基本知識を身に付けたい方がいらっしゃいましたら、
本ブログでは「1週間で分かるVBA 」 なる記事もご紹介していますので、
一度 覗いてみてくれると幸いです。(当然、無料です。)




-ALL, EXCEL, Program, Tips, VBA
-, , ,