100日目 基礎固め27

今日も昨日読み込んでいた、ExcelVBAネタを扱っているブログを見て勉強していた。

昨日に引き続き、読み易いコードを書く方法が書かれているページを沢山読んだ。


カウンター変数名は分かり易くとか、If文のネストにするかしないでざっと見て処理ごとに書いていくかとか。

色々と参考になる事ばかり書かれているので、メモする内容も結構な量になった。


そのせいで自分でVBAを書く時に、何から手を付けるとか何を気を付けたら良いかとかが整理出来なくなっている。

今読み込んでいるブログはとりあえず今日で一旦終わりにする予定なので、ちょっとメモした内容を整理しないと。

実際にVBAを書く時に今のままだと確実に混乱する。

 

あと今日は個人用マクロブックを作成してみた。
作成と言っても、個人用マクロブックを追加して標準モジュールを追加&リネームした位。

 

一応汎用関数という名前にリネームした標準モジュールに、1つだけよく使いそうな汎用関数を作ってみた。
汎用関数を作って、プロシージャを分割がスムーズに出来ればと思っている。

 

明日も続きをやるつもりだけど、汎用関数の前によく使うコードを書いたテンプレートを作成した方が良いかもしれない。
テンプレートという名前にリネームしておいた標準モジュールがあるので、明日は少しテンプレートに追加しようと思う。

99日目 基礎固め26

今日は、ExcelVBAに関して様々な事を書かれている方のブログを読んでいた。

一応以前からそのブログの存在は知っていて、たまに読んだりして参考にさせてもらっていた。


ブログ内でVBAを読み易くするコツの様なページがあるのは知っていたので、今日はそのページや参考になりそうなページを読んだ。

変数の命名は意味が分かる名称にするとか、マジックナンバーを減らすとかVBAではなくても参考になる内容ばかり。非常に勉強になって、参考になりそうなことはメモ帳にメモしておいた。

 

その中でも、プロシージャ分割の事が非常に分かり易く書かれていた。
多分VBAのプロシージャ分割に関して、ここまで分かり易く書かれているブログは他にはないだろうと思える位のレベル。

 

基本的な最終行取得とか、マクロの高速化の部分とかはもちろん紹介されていた。
さらにIf文の条件文の部分を分割して、別のプロシージャにする手法も書かれていた。

まず自分ではやらない手法なのでとても参考になった。


多分SEやプログラマーの方々にとっては、極々当たり前の事なんだろうと思う。

でも今の自分にとってはとても有益な情報だった。


明日もブログを見て参考になりそうな部分を勉強しようと思う。

98日目 基礎固め25

今日も基礎固め。
最近使っているサイトで今日も基礎を勉強した。

 

今日は重複削除の事とFormat関数関連を勉強していた。
まず重複削除。

 

5通り位のやり方が紹介されていて、1つを除いて大体使った事のあるやり方だった。
その1つと言うのはピボットテーブルを使った重複削除のやり方だ。

 

ピボットテーブルは前に勉強した事があったけど、重複削除するのに使えるなんて知らなかった。
元データからピボットテーブルを作成して例えば行フィールドにデータを配置したとすると、その時点で自動的に重複が削除される。

 

なので作成からフィールドに配置するだけで重複が削除出来てしまう。
このやり方は楽だしとても分かり易いと思った。

 

次にFormat関数関連。
Format関数には定義済み書式という物があるらしく、定義済み書式を使わないと出来ない書式設定も存在するらしい。

 

定義済み書式は、通常通りFormat関数の引数Formatにダブルクォーテーションで囲って指定すれば良い。
使い方は通常のFormat関数を使う感覚。

 

ただ覚えておいて損は無いと思った。
今後何かに活かせればと思う。

97日目 基礎固め24

今日も基礎固め。
最近使っているサイトで今日も基礎を勉強した。

 

今日は主にオートフィルに時間を費やしていた。
最近使っているサイトで、連続データの作成を解説しているページがあったので見ていた。

 

オートフィルの引数Typeの設定を変えれば色々出来るみたいだ。
オートフィルなんてほぼ使わなかったので、こんな便利な使い方があるのかと感心してしまった。

 

オートフィルの使い方と言えば、あるセルの右下にマウスポインタを当てると十字に変わる。
その状態でマウスの左ボタンを押しっぱなしにして、ドラッグしたまま動かすと連続データが自動で作成される。

今までは上記のやり方しか知らなかった。


今日引数Typeに設定出来る定数を見て、他の事も出来る事を発見出来た。

そのページの中で、オートフィルターで絞り込んだ状態で可視セルだけに連番を振るというのが紹介されていた。


残念ながら画像で紹介されていてコードが掲載されていなかったので、自分で何とかやってみたけど出来なかった。

オートフィルじゃなくて他のメソッドを使うと出来たけど、オートフィルでやろうとすると出来ない。
何か良い方法は無いんだろうか。

 

まあ考えても出来る感じが全く無いので先に進もうと思う。

96日目 基礎固め23

今日も基礎固め。
最近使っているサイトで今日も基礎を勉強した。

今日はLike演算子の勉強と、サイトで紹介されていた例題のマクロを作っていた。


まずLike演算子

今まで「*」は使っていて慣れていたけど、その他の「?」や「#」をあんまり使ってこなかった。


今日は使わなかったけど、代わりに[1-9]な様な各括弧でマッチングさせるケースが出てきた。

ある文字列で始まらない文字列を取得するという物。
しかも上記の複数条件。

 

〇〇か▼▼か■■で始まらない文字列を取得する。
ヒントにLike演算子と書かれていたけど、Like演算子での書き方が分からなかった。

 

サンプルコードを見てまた勉強した。
まだまだLike演算子はよく分かってないと実感した。

 

あと今日は、サイトで紹介されていた例題のマクロを自分で作ってみた。
セルに入力されている文字列の中の数値だけに、カンマ区切りを入れるという物。

 

サンプルコードは正規表現を使っていたけど、正規表現を使わないで一応正常に動くマクロを作る事が出来た。
そもそも正規表現の使い方はまだ勉強していないので分からない。

 

サンプルコードと比べて、処理速度は確実に遅い事は動かさなくてもコードを見て何となく分かる。
まだまだ色々勉強不足。

95日目 基礎固め22

今日も基礎固め。
最近使っているサイトで今日も基礎を勉強した。

 

今日は、活用する機会があるのか分からない部分ばかり勉強していた気がする。
オートフィルの引数を設定して連続データの間隔を指定するとか、ファイルを開くダイアログでファイル名にワイルドカードを指定するとか。

 

まあ使うかもしれないけど、あんまり優先度が高いとは言えないと思う。
Excelファイルのパスワードの設定方法とかも勉強したけど、それも優先度はどうなんだろう。

 

基本Excelファイルを保存する時に、引数PassWordに任意のパスワードを設定して保存すればパスワード付きのExcelファイルを保存する事が出来る。
Excelファイルを開く時も、パスワード入力のダイアログに設定済みのパスワードを入力すれば開ける。

 

今まで知らなかったのは、Excelファイルを開いた状態でパスワードが設定出来る事。
ワークブックのプロパティにパスワードを設定出来るプロパティが存在した。

 

またExcelファイルを開いた状態で、そのExcelファイルがパスワードが設定されているかどうかも判定出来る。
これもワークブックのプロパティに判定出来るプロパティが存在する。

 

使う機会があるのかは分からないけど、一応勉強にはなったのか。
明日からグラフ関連を勉強し直す予定。

94日目 基礎固め21

今日も基礎固め。
最近使っているサイトで今日も基礎を勉強した。

 

主にシート関係とファイル関係を勉強した。
FileCopy・CurDir・MkDirなどの復習をやったり、現在選択されているシートのコレクションを取得出来る方法を勉強したり。

 

FileSystemObjectも結構使う機会があって、良い復習になったと思う。
FileSystemObjectでサブフォルダ内のファイルを全て取得するのもやった。

 

前に勉強したけどかなり忘れていたので、今回サンプルコードを参考にして自分で書いてみたりした。
あとDir関数でサブフォルダを取得する時の、GetAttr関数の判定と「.」と「..」をIf文ではじく判定などを復習した。

 

そして今日習得した新しい事はWSH
WSHを使って、デスクトップやマイドキュメントのファイルパスを取得出来る様になった。

 

何となく敬遠していたけど、サンプルコードを見たらそんなに難しくなさそうだったので習得出来た。
明日も基礎固め。