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 」 なる記事もご紹介していますので、
一度 覗いてみてくれると幸いです。(当然、無料です。)




  • この記事を書いた人

Nakamura(nkmr)

NakamuraBlog(ナカログ)運営 [ 2.5万PV/月 ] │ブロガー│ 【経歴】IT会社に新卒入社 ▶︎ 通用しない ▶︎ プログラミングに出会う ▶︎ 年間1億円以上のコスト削減プログラムを開発 ▶︎ 会社賞受賞 ▶︎ 少しでも世の中の苦しんでる私と似た人に役に立てればと思いブログを開設。 ● 文系がプログラムと出会って会社員人生が変わった人。 ● 2020年より「嫁を置いて1人旅」の旅動画を投稿開始。

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