エクセル雑感
VBA今日のひとこと/VBA今日の教訓 on Twitter

ExcelマクロVBAとエクセル関数についての私的雑感
公開日:2021-06-10 最終更新日:2021-07-15

VBA今日のひとこと/VBA今日の教訓 on Twitter


ツイッターで時々「VBA今日のひとこと」「VBA今日の教訓」として発信しています。
そのまとめとしてここに記録しておきます。


カレンダー

20215 20216 20217
 日   月   火   水   木   金   土      月   火   水   木   金   土      月   火   水   木   金   土 
  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

VBA今日のひとこと
とりあえずこれだけは覚えておこう
Ctrl+G
Application.ScreenUpdating=True
Enter

今日のひとこと ・・・ 2021年5月29日(土)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
隗より始めよ
Ctrl+Spaceから始めよ

今日のひとこと ・・・ 2021年5月30日(日)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
値のコピーなら
Range.Value = Range.Value
RangeはRangeオブジェクトで範囲でもよい、Valueを付け忘れるな!

今日のひとこと ・・・ 2021年6月1日(火)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
セルのデータだけを消去するには、RangeのメソッドClearContentsを使います。
これは、= "" でも良いです。むしろセル結合を考慮するならこっちの方が良いかも。

今日のひとこと ・・・ 2021年6月2日(水)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
OffsetとResizeは同時に覚えましょう。
シートのOFFSET関数を先に理解しておけば楽勝ですよ。

今日のひとこと ・・・ 2021年6月3日(木)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
最初はデータ型を無理に覚えようとしなくて良い。
・文字
・数値
・真偽値
・オブジェクト
これを意識することが大切。
数値の型が沢山あるから迷ってしまうだけ。
日付だってDoubleなんだよ。

今日のひとこと ・・・ 2021年6月4日(金)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
文字列結合の&
この&はLong(長整数型)の型宣言でもある。
変数名の直後に間を空けずに&を書けば型宣言とみなされてエラーになる。
変数の直後の&は半角空白を空けてから記述してください。

今日のひとこと ・・・ 2021年6月6日(日)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
For i = n1 To n2
'・・・
Next
←この時点では通常は「i = n2+1」となりますが、必ずそうなるとは限りません。
n1>n2の場合は、i=n1でForを抜けます。
この場合はNextステートメントが実行されません。
もしループカウンタをその下で使うのなら気を付けましょう。

今日のひとこと ・・・ 2021年6月7日(月)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
引数を括弧で囲うか問題
先頭のCallを省略したときだけ括弧を省略するのです。
プロシージャーやメソッド呼び出しの先頭Callを省略した時だけ括弧を省略するのです。

今日のひとこと ・・・ 2021年6月8日(火)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
Like演算子はしっかり使えるようになりましょう。
? 任意の1文字
* 任意の数の文字
# 任意の1文字の数字
[charlist] 文字リストの中の任意の1文字
[!charlist] 文字リスト以外の任意の1文字
これだけです、たったこれだけ覚えれば良いのです。

今日のひとこと ・・・ 2021年6月9日(水)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
Select CaseのCase句でのカンマ区切り(Or条件)
条件を満たした時点でCase句の中のステートメントが実行されます。
条件を満たした式より後ろの式(,カンマの後の他の式)は評価しません。
つまり、短絡評価(ショートサーキット)になります。

今日のひとこと ・・・ 2021年6月10日(木)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
ブロックの終了は忘れないように先に書くのです。
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

VBA今日のひとこと
ブロック内はインデント!
Tabキーでインデント!
先にブロックの終了(End等)を書いてから中に入って、Tabキーでインデントしてから書き始めれば良いのです。

今日のひとこと ・・・ 2021年6月13日(日)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
Applicationのプロパティはエクセル全体に対する設定です。
非常に沢山ありますが、通常使うものは限られています。
Calculation
Caller
Cursor
DisplayAlerts
EnableEvents
ScreenUpdating
StatusBar
このあたりは覚えましょう。
分からないものがあったら検索するのです。

今日のひとこと ・・・ 2021年6月15日(火)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
RangeオブジェクトはエクセルVBAの基本であり根幹です。ですが難しい…
Rangeオブジェクトを返す主要なプロパティです。
Range
Cells
Rows
Columns
EntireRow
EntireColumn
Offset
Resize
End
SpecialCells
MergeArea
不安なものは再確認しておきましょう。

今日のひとこと ・・・ 2021年6月17日(木)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
VBAで調べものをする場合、まずは「Office VBA リファレンス」を読むのです。
「vba ○○○」だけでは余分なサイトが出てきてしまうので、docsを付けてください。
「vba ○○○ docs」
日本語訳がおかしいと思ったら英文を読むのです。
/ja-jp/

/en-us/ … /en/ だけでも良い。


VBA今日のふたこと
このリファレンスは読みづらいかもしれません。
というか間違いなく読みづらいでしょう。
でも少しずつ慣れてください。
慣れれば読むのも苦にならなくなります。
易しい解説ページを探すときは、docsを外して再検索してください。
エクセルの神髄が出てきたら…よろしくね😇

今日のひとこと ・・・ 2021年6月19日(土)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
いきなり最初から、
Application.ScreenUpdating = False
これを入れてはいけない。
ある程度完成してから、速度対策および画面ちらつき対策として必要に応じて適宜入れるのです。

今日のひとこと ・・・ 2021年6月22日(火)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
「:」はマルチステートメント
「 _」は1ステーチメントを改行
「:」は縦に伸びて見づらい場合にぎゅっと行を詰めることができます。
「 _」は横に伸びて画面に入りきらない場合に改行できます。
これらを適宜使用して、全体として読みやすいVBAコードにするのです。

今日のひとこと ・・・ 2021年6月23日(水)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
プロシージャーの引数
ByRef:参照渡し(省略時)…By Reference
ByVal:値渡し…By Value
呼び出し元の引数に使っている変数の値が、
・ByRefは変更される
・ByValは変更されない
ただしオブジェクト変数はByValでもオブジェクトの中身は変更される。
※最初は単純に覚えれば良い。

今日のひとこと ・・・ 2021年6月30日(水)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
VBA実行中にカーソルがチラつくのは、あまり気分の良いものではない。
ひどくチラ付くときは速度も遅くなります。
そんな時は、
VBA開始時に、Application.Cursor = xlWait
そして最後に、Application.Cursor = xlDefault
これでチラつきもなくなり速度も改善されます。


ただし、最初からカーソルがチラつかないようにVBAを作成したほうが良いのは言うまでもありません。

今日の教訓 ・・・ 2021年7月2日(金)

マクロ VBA今日のひとこと on Twitter

VBA今日の教訓
ウォッチウィンドウは使い方が分かればとても便利です。
でもウォッチ式によっては注意が必要です。
プロパティ等の式を評価するために動作してしまうものは要注意です。
Dictionaryのkeyを指定した「Dic(v)」これを入れるとデバッグで止めた時点でkey=vが追加されます。


ちょっと分かりづらいですよね。
簡単なサンプル画像です。
画像2枚目のstop前後でcountが変わってしまいます。
この挙動は、ウォッチウィンドウの表示/非表示に関係なく起こります。

マクロ VBA今日のひとこと on Twitter

マクロ VBA今日のひとこと on Twitter

今日の教訓 ・・・ 2021年7月6日(火)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
各情報が何処に保存されているのかをしっかり把握してください。
・セル
・シート
・ブック
・ウィンドウ
・アプリケーション
まずはこれらが判断できるようになると、今までモヤっとしていたものがスッキリしてきます。

今日の教訓 ・・・ 2021年7月7日(水)

マクロ VBA今日のひとこと on Twitter

VBA今日の教訓ブタの顔
シート.PrintOut
これで印刷できます。
Preview:=True
これを指定すればプレビューされます。
しかし、
空っぽのシートは印刷できない。
エラーにもならない。
何も起こらない。
※非表示シートは印刷できません。エラーになります。

今日の教訓 ・・・ 2021年7月15日(木)

マクロ VBA今日のひとこと on Twitter

VBA今日のひとこと
VBAでシステム作りも良いのですが、むしろアドホックな作業にこそ活用してもらいたい。
エクセル起動して(起動済みの場合も多い)Alt+F11からサクッと数行のVBAを書いて、ステップインで確認しながら実行し、良さそうならF5でGo。
ファイル名の一括変換なら数行書くだけです。




同じテーマ「エクセル雑感」の記事

VBAコーディング規則に関する連ツイ
将棋とプログラミングについて~そこには型がある~
変数を考えることはロジックを考える事
VBA今日のひとこと/VBA今日の教訓 on Twitter
ローカル版エクセルが「Office Scripts」に変わる日
エクセルVBA 段級位 目安
DXってなんだ? ITと何が違うの?
在庫を減らせ!毎日棚卸ししろ!
エクセル馬名ダービー
VBA学習のお勧めコース
コンピューターはブラックボックスで良い


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

TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(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)


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

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.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




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


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


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