VBA今日のひとこと/VBA今日の教訓 on Twitter
ツイッターで時々「VBA今日のひとこと」「VBA今日の教訓」として発信しています。
そのまとめとしてここに記録しておきます。
カレンダー
2021年5月 | 2021年6月 | 2021年7月 | ||||||||||||||||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | 火 | 水 | 木 | 金 | 土 | ||
1 | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 | 1 | 2 | 3 | |||||||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ||
9 | 10 | 11 | 12 | 13 | 14 | 15 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | ||
16 | 17 | 18 | 19 | 20 | 21 | 22 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | ||
23 | 24 | 25 | 26 | 27 | 28 | 29 | 27 | 28 | 29 | 30 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |||||
30 | 31 |
今日のひとこと ・・・ 2021年5月28日(金)
![マクロ VBA今日のひとこと on Twitter](image153.jpg)
とりあえずこれだけは覚えておこう
Ctrl+G
Application.ScreenUpdating=True
Enter
今日のひとこと ・・・ 2021年5月29日(土)
![マクロ VBA今日のひとこと on Twitter](image154.jpg)
隗より始めよ
Ctrl+Spaceから始めよ
今日のひとこと ・・・ 2021年5月30日(日)
![マクロ VBA今日のひとこと on Twitter](image155.jpg)
値のコピーなら
Range.Value = Range.Value
RangeはRangeオブジェクトで範囲でもよい、Valueを付け忘れるな!
今日のひとこと ・・・ 2021年6月1日(火)
![マクロ VBA今日のひとこと on Twitter](image156.jpg)
セルのデータだけを消去するには、RangeのメソッドClearContentsを使います。
これは、= "" でも良いです。むしろセル結合を考慮するならこっちの方が良いかも。
今日のひとこと ・・・ 2021年6月2日(水)
![マクロ VBA今日のひとこと on Twitter](image157.jpg)
OffsetとResizeは同時に覚えましょう。
シートのOFFSET関数を先に理解しておけば楽勝ですよ。
今日のひとこと ・・・ 2021年6月3日(木)
![マクロ VBA今日のひとこと on Twitter](image158.jpg)
最初はデータ型を無理に覚えようとしなくて良い。
・文字
・数値
・真偽値
・オブジェクト
これを意識することが大切。
数値の型が沢山あるから迷ってしまうだけ。
日付だってDoubleなんだよ。
今日のひとこと ・・・ 2021年6月4日(金)
![マクロ VBA今日のひとこと on Twitter](image159.jpg)
文字列結合の&
この&はLong(長整数型)の型宣言でもある。
変数名の直後に間を空けずに&を書けば型宣言とみなされてエラーになる。
変数の直後の&は半角空白を空けてから記述してください。
今日のひとこと ・・・ 2021年6月6日(日)
![マクロ VBA今日のひとこと on Twitter](image160.jpg)
For i = n1 To n2
'・・・
Next
←この時点では通常は「i = n2+1」となりますが、必ずそうなるとは限りません。
n1>n2の場合は、i=n1でForを抜けます。
この場合はNextステートメントが実行されません。
もしループカウンタをその下で使うのなら気を付けましょう。
今日のひとこと ・・・ 2021年6月7日(月)
![マクロ VBA今日のひとこと on Twitter](image161.jpg)
引数を括弧で囲うか問題
先頭のCallを省略したときだけ括弧を省略するのです。
プロシージャーやメソッド呼び出しの先頭Callを省略した時だけ括弧を省略するのです。
今日のひとこと ・・・ 2021年6月8日(火)
![マクロ VBA今日のひとこと on Twitter](image162.jpg)
Like演算子はしっかり使えるようになりましょう。
? 任意の1文字
* 任意の数の文字
# 任意の1文字の数字
[charlist] 文字リストの中の任意の1文字
[!charlist] 文字リスト以外の任意の1文字
これだけです、たったこれだけ覚えれば良いのです。
今日のひとこと ・・・ 2021年6月9日(水)
![マクロ VBA今日のひとこと on Twitter](image163.jpg)
Select CaseのCase句でのカンマ区切り(Or条件)
条件を満たした時点でCase句の中のステートメントが実行されます。
条件を満たした式より後ろの式(,カンマの後の他の式)は評価しません。
つまり、短絡評価(ショートサーキット)になります。
今日のひとこと ・・・ 2021年6月10日(木)
![マクロ VBA今日のひとこと on Twitter](image164.jpg)
ブロックの終了は忘れないように先に書くのです。
Sub...End Sub←自動
Function...End Function←自動
Property...End Property←自動
Type...End Type
Enum...End Enum
If...End If
Select...End Select
With...End With
For...Next
Do...Loop
While...Wend
以上です。
今日のひとこと ・・・ 2021年6月11日(金)
![マクロ VBA今日のひとこと on Twitter](image165.jpg)
ブロック内はインデント!
Tabキーでインデント!
先にブロックの終了(End等)を書いてから中に入って、Tabキーでインデントしてから書き始めれば良いのです。
今日のひとこと ・・・ 2021年6月13日(日)
![マクロ VBA今日のひとこと on Twitter](image166.jpg)
Applicationのプロパティはエクセル全体に対する設定です。
非常に沢山ありますが、通常使うものは限られています。
Calculation
Caller
Cursor
DisplayAlerts
EnableEvents
ScreenUpdating
StatusBar
このあたりは覚えましょう。
分からないものがあったら検索するのです。
今日のひとこと ・・・ 2021年6月15日(火)
![マクロ VBA今日のひとこと on Twitter](image167.jpg)
RangeオブジェクトはエクセルVBAの基本であり根幹です。ですが難しい…
Rangeオブジェクトを返す主要なプロパティです。
Range
Cells
Rows
Columns
EntireRow
EntireColumn
Offset
Resize
End
SpecialCells
MergeArea
不安なものは再確認しておきましょう。
今日のひとこと ・・・ 2021年6月17日(木)
![マクロ VBA今日のひとこと on Twitter](image168.jpg)
VBAで調べものをする場合、まずは「Office VBA リファレンス」を読むのです。
「vba ○○○」だけでは余分なサイトが出てきてしまうので、docsを付けてください。
「vba ○○○ docs」
日本語訳がおかしいと思ったら英文を読むのです。
/ja-jp/
↓
/en-us/ … /en/ だけでも良い。
このリファレンスは読みづらいかもしれません。
というか間違いなく読みづらいでしょう。
でも少しずつ慣れてください。
慣れれば読むのも苦にならなくなります。
易しい解説ページを探すときは、docsを外して再検索してください。
エクセルの神髄が出てきたら…よろしくね😇
今日のひとこと ・・・ 2021年6月19日(土)
![マクロ VBA今日のひとこと on Twitter](image169.jpg)
いきなり最初から、
Application.ScreenUpdating = False
これを入れてはいけない。
ある程度完成してから、速度対策および画面ちらつき対策として必要に応じて適宜入れるのです。
今日のひとこと ・・・ 2021年6月22日(火)
![マクロ VBA今日のひとこと on Twitter](image170.jpg)
「:」はマルチステートメント
「 _」は1ステーチメントを改行
「:」は縦に伸びて見づらい場合にぎゅっと行を詰めることができます。
「 _」は横に伸びて画面に入りきらない場合に改行できます。
これらを適宜使用して、全体として読みやすいVBAコードにするのです。
今日のひとこと ・・・ 2021年6月23日(水)
![マクロ VBA今日のひとこと on Twitter](image335.jpg)
プロシージャーの引数
ByRef:参照渡し(省略時)…By Reference
ByVal:値渡し…By Value
呼び出し元の引数に使っている変数の値が、
・ByRefは変更される
・ByValは変更されない
ただしオブジェクト変数はByValでもオブジェクトの中身は変更される。
※最初は単純に覚えれば良い。
今日のひとこと ・・・ 2021年6月30日(水)
![マクロ VBA今日のひとこと on Twitter](image173.jpg)
VBA実行中にカーソルがチラつくのは、あまり気分の良いものではない。
ひどくチラ付くときは速度も遅くなります。
そんな時は、
VBA開始時に、Application.Cursor = xlWait
そして最後に、Application.Cursor = xlDefault
これでチラつきもなくなり速度も改善されます。
今日の教訓 ・・・ 2021年7月2日(金)
![マクロ VBA今日のひとこと on Twitter](image174.jpg)
ウォッチウィンドウは使い方が分かればとても便利です。
でもウォッチ式によっては注意が必要です。
プロパティ等の式を評価するために動作してしまうものは要注意です。
Dictionaryのkeyを指定した「Dic(v)」これを入れるとデバッグで止めた時点でkey=vが追加されます。
簡単なサンプル画像です。
画像2枚目のstop前後でcountが変わってしまいます。
この挙動は、ウォッチウィンドウの表示/非表示に関係なく起こります。
![マクロ VBA今日のひとこと on Twitter](E5RMbBLVUAQhfy7.png)
![マクロ VBA今日のひとこと on Twitter](E5RMfl6VUAMnJII.png)
今日の教訓 ・・・ 2021年7月6日(火)
![マクロ VBA今日のひとこと on Twitter](image176.jpg)
各情報が何処に保存されているのかをしっかり把握してください。
・セル
・シート
・ブック
・ウィンドウ
・アプリケーション
まずはこれらが判断できるようになると、今までモヤっとしていたものがスッキリしてきます。
今日の教訓 ・・・ 2021年7月7日(水)
![マクロ VBA今日のひとこと on Twitter](image378.jpg)
シート.PrintOut
これで印刷できます。
Preview:=True
これを指定すればプレビューされます。
しかし、
空っぽのシートは印刷できない。
エラーにもならない。
何も起こらない。
※非表示シートは印刷できません。エラーになります。
今日の教訓 ・・・ 2021年7月15日(木)
![マクロ VBA今日のひとこと on Twitter](image177.jpg)
VBAでシステム作りも良いのですが、むしろアドホックな作業にこそ活用してもらいたい。
エクセル起動して(起動済みの場合も多い)Alt+F11からサクッと数行のVBAを書いて、ステップインで確認しながら実行し、良さそうならF5でGo。
ファイル名の一括変換なら数行書くだけです。
同じテーマ「エクセル雑感」の記事
VBAコーディング規則に関する連ツイ
将棋とプログラミングについて~そこには型がある~
変数を考えることはロジックを考える事
VBA今日のひとこと/VBA今日の教訓 on Twitter
ローカル版エクセルが「Office Scripts」に変わる日
エクセルVBA 段級位 目安
DXってなんだ? ITと何が違うの?
在庫を減らせ!毎日棚卸ししろ!
エクセル馬名ダービー
VBA学習のお勧めコース
コンピューターはブラックボックスで良い
新着記事NEW ・・・新着記事一覧を見る
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、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)
アクセスランキング ・・・ ランキング一覧を見る
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.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.並べ替え(Sort)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。