Inquiring mind -2nd phase-

Excel VBA 進捗

2021/8/16

体調が戻るまで休止


2021/8/9

パーフェクト EXCEL VBA
5-3-4 値渡しと参照渡し
5-3-5 配列を引数として渡す (途中まで)
SP七段並のキツさ。
何に使うか分からない状態での勉強がキツイ。


2021/8/5

パーフェクト EXCEL VBA
5-3-2 引数の順序と名前
5-3-3 引数をオプションにする
写経済み


2021/8/4

罠の解決については、平日に付け焼刃でどうにかなるレベルではなさそうなので、一旦座学をこなすことにした。
Sub name() ←この括弧の中に記述する書式が凄いことになっているということを知った。

Sub name([arglist])

arglistの書式
[Optional][ByVal|ByRef][ParamArray]varname[()][As Type][ = defaultvalue]

省略されてるものをちゃんと紹介してくれる書籍は信用できる。


2021/8/3
休み


2021/8/2

脳疲労デーだと、罠を解決する術が思い浮かばないし、何なら体も動かない。


2021/8/1

仕事で使う方を進めてた。
データが1行しかない時にEnd(xlDown)を使うと最大行が返るという罠にハマって終了。


2021/7/30


マスクが雑なやつ。
これを全自動化するのがゴールだけど難度が冥SPA。


2021/7/29

動画編集ミスにより進捗無し。
昨日から更に2分程短縮できそうな感じになった。


2021/7/28

脳が働かなくて勉強どころではない。
全自動化の難度が冥(A)HARD並なので、一旦入力支援ツール的なものを作った。


ダサさ・・・( ´ω`)
ダサいけど1曲につき作業時間が3分ほど短縮できそう。


2021/7/27

本日の頑張ったコード

頑張ったというか、正解を引き当てるまで1個ずつ動作を確認した感じ。
Colorの書き方については本に載ってないので、フィーリングで書いていくしかない。
ただただ時間が必要なやつ。


2021/7/26

やはり最低でも1時間無いと、分からん殺しされたまま終わってしまう。


2021/7/25

・本日の頑張ったコード

連続していない列を選択して非表示にするコード。
やろうとしていることは単純なのに、コードが分からん殺しになるやつ。
RangeではなくColumnsを使ったりすると、そのまま沼る。

・本日の頑張ったコード その2

オートフィルタを適用した後に、可視セルのみに対して日付が特定条件範囲内かどうかを調べるコード。
「記憶自動化毎に太い緑罫線を引く」を実現しようとしたところ、マジで難しくて知恵熱を出して3時間くらい寝込んでた。
条件の部分は7/11の勉強が活きた。

やりたい事を日本語化した後に、どうすれば機械に伝わるかを考えるのが大変。

・本日の頑張ったコード その3

かなりの力技で狙った日付のセルを選ぶことが出来た。
ただ、コードに柔軟性が無いので、例外的なデータの場合は通用しなそう。

これはかなり頑張ってると思うんだよな・・・ ( ´ω`)


2021/7/24
曲リストを参照して、コンボボックスで曲を選択して、選択した曲の行を非表示にするようなマクロをこしらえた。
やりたかった事とは違うけど、エラーが出なくて嬉しかったのでNash Music Libraryで新曲を購入した。

改めて

「何が作りたいのか」、「作りたいものを決めて逆算しろ」、「作りたいものが無い状態で勉強することに意味はあるのか」

このアドバイス(?)がスーパーウンコカスであることが分かった。
VBAだろうが動画だろうが、やりたい事とか作りたいものといったアイディアは秒で浮かぶけど、結局それを実現する方法は自分で模索するしかない。
やりたいことを日本語で書いたところで、最初のステップがSP Lv.10並のムズさなので、結局しんどいっていう。

・memo
ブログにコードを貼り付ける際に見た目がダサくなってしまう問題をいずれ解消する。
イラストの時と同様に、レベルが低いうちから敢えてコードを貼るようにする。
(但し、明らかに自分から見て間違えているものは貼らない)

本日の頑張ったコード

コレクションの部分がイケてないので明日直す。
俺がやりたかったのは、「選択した曲以外を非表示にする」なので、条件を「<>」にすれば実現できる。

今日直した

ただ、これだと行数が多い場合に処理が終わるまでに3年掛かるっぽいので、別のやり方を考える必要がありそう。

更に直した

「これでいけんじゃね?」がハマった時が楽しいわね。


2021/7/23
ファイルを開いて、当日分の回数を反映するようなマクロをこしらえた。


SP三段(個人基準)のレベルまでは進んでいる気がする。

■自分の中の暫定基準
変数を使える → SP初段
ループ処理を使える → SP二段
他のファイルを読み込ませることができる → SP三段
別アプリと連携させることができる → SP四段

確かに自分で作る方が地力向上に繋がるけど、最低限知っておくべき情報を先にインプットした方が良いと思った。
先に情報をインプットしておかないと、そもそも何が起きてるか分からないし、問題が起きた時に自力で解決できない。


2021/7/22
ファイルを開くコードを自力でこしらえた


プライバシー的にアレな部分を雑にマスクしている。

これだけでも中々大変。


2021/7/21

会社の同部署の人が作ったネオスパゲティコードを眺めてた(失礼)
コードを見る限り、やりたいことを日本語で組み立てる段階で躓いている感があった。


2021/7/20完了分

472 : ユーザーフォームを表示する
473 : ユーザーフォームを閉じる
474 : ユーザーフォームを表示する直前に初期状態に設定する
475 : [閉じる]ボタンでユーザーフォームを閉じられないようにする
476 : コントロールのタブオーダーを自動的に設定する
477 : フォーカスがなくてもEnterキーでクリックできるボタンを作成する


Excel VBAを極める勝ちワザ700の中盤以降は、2DXで言う「皿」や「ソフラン」が多めに配置されていて、今急いで取り組む必要は無さそうなので、少し方針転換する。
「皿」、「ソフラン」以外を一旦終わらせて、その後は「座学(読書)」、「普段の作業の自動化(自己べが出た時のセルの色付け)」、「資格取得に向けた勉強」を併行して進めることにする。

2021/7/19完了分

458 : ユーザーフォームを作成する
459 : コントロールを配置する
460 : コントロールを操作する
461 : 複数のコントロールの大きさや表示位置をそろえる
462 : グリッドの幅や高さを変更する
463 : プロパティを設定する
464 : タブオーダーを設定する
465 : コントロールから実行したい処理を記述する
466 : ユーザーフォームを実行する
467 : ユーザーフォームを削除する
468 : ユーザーフォームのタイトルを設定する
469 : ユーザーフォームの背景色を設定する
470 : ユーザーフォームを画面の中央に表示する
471 : ユーザーフォームが表示されていてもワークシートを操作できるようにする


2021/7/18完了分

262 : ワークシートの内容をカンマで連結してテキストファイルに書き込む
263 : ワークシートの内容を行単位でテキストファイルに書き込む
264 : ファイル名を変更して別のフォルダーにコピーする
265 : フォルダー内のファイルをまとめて削除する
266 : ファイル名を変更して別ドライブのフォルダーへ移動する
267 : フォルダー名を変更する
268 : ファイルの属性を設定する
269 : Cドライブに新規フォルダーを作成する
270 : ファイルが保存されているフォルダーを削除する
271 : カレントドライブを変更する
272 : カレントフォルダ―を変更する
273 : 同じ名前のファイルが存在するかどうかを調べて保存する(Dir関数の場合)
274 : フォルダー内のファイル名一覧を作成する
275 : ファイルサイズを調べる
276 : ファイルの更新日時を調べる
277 : ファイルの属性を調べる
278 : Cドライブのカレントフォルダーを調べる
279 : 特殊フォルダーをパスを取得する
280 : ファイルシステムオブジェクトとは
281 : 外部ライブラリファイルへの参照設定を行う
282 : 参照設定を行わずに外部オブジェクトを使用する
283 : FileSystemObjectオブジェクトを使用してファイルをコピーする
284 : Fileオブジェクトを使用してファイルをコピーする
285 : FileSystemObjectオブジェクトを使用してファイルを移動する
286 : Fileオブジェクトを使用してファイルを移動する
287 : FileSystemObjectオブジェクトを使用してファイルを削除する
288 : Fileオブジェクトを使用してファイルを削除する
289 : ファイルの属性を調べる
290 : フォルダー内のすべてのファイルの情報一覧を作成する
291 : すべてのフォルダー階層をたどってすべてのファイルの情報一覧を作成する
292 : 同じ名前のファイルが存在するかどうかを調べてから保存する(FSOの場合)
293 : CSV形式のテキストファイルを読み込む
294 : CSV形式のテキストファイルを読み込む(Fileオブジェクトの場合)
295 : FSOを使用して固定長フィールド形式のテキストファイルを読み込む
296 : テキストファイルの全ての内容を高速に読み込む(ReadAllメソッドの場合)
297 : FileSystemObjectオブジェクトを使用してテキストファイルを作成する
298 : CSV形式のテキストファイルにデータを書き込む
299 : テキストファイルに文字列と改行文字を書き込む
300 : ブックの修正履歴(ログファイル)を作成する
301 : FileSystemObjectオブジェクトを使用してフォルダーを作成する
302 : FileSystemObjectオブジェクトを使用してフォルダーをコピーする
303 : Folderオブジェクトを使用してフォルダーをコピーする
304 : FileSystemObjectオブジェクトを使用してフォルダーを移動する
305 : Folderオブジェクトを使用してフォルダーを移動する
306 : FileSystemObjectオブジェクトを使用してフォルダーを削除する
307 : Folderオブジェクトを使用してフォルダーを削除する
308 : フォルダーの属性を調べる
309 : ドライブ直下のフォルダーの一覧を作成する
310 : ドライブの総容量と空き容量を調べて使用容量を計算する
311 : すべてのドライブの種類を調べる
312 : 接続されているドライブの数を調べる
313 : ドライブの準備状態を調べる
314 : ドライブのファイルシステムの種類を調べる
315 : 指定したウィンドウを最前面に表示する
316 : 開いているすべてのウィンドウのウィンドウ名一覧を作成する
317 : 最前面に表示されているウィンドウの名前を調べる
318 : 複数のウィンドウを並べて表示する
319 : ウィンドウのコピーを開いてスクロールを同期させる
320 : アクティブウィンドウとそのほかのウィンドウのスクロールを同期させる
321 : ウィンドウ枠を固定する
322 : 行数と列数を指定してウィンドウを分割する
323 : 表示位置の上端行と左端列を設定する
324 : アクティブウィンドウの表示を最小化する
325 : ウィンドウの表示位置を設定する


2021/7/17完了分

231 : ブックが変更されているかどうかを確認する
232 : ブックの変更を保存せずに閉じ
233 : [名前を付けて保存]ダイアログボックスを表示してブックを保存する①
234 : [名前を付けて保存]ダイアログボックスを表示してブックを保存する②
235 : 変更を保存してブックを閉じる
236 : ブックを保存せずにExcelを終了する
237 : ブックのバックアップを作成する
238 : 指定したブックが開いているかを調べる
239 : コードを実行しているブック以外のブックを閉じる
240 : ブックの保存場所からブック名までを含めて取得する
241 : ブックの保存場所を調べて同じ場所にブックを保存する
242 : ブックを保護する
243 : ブックの保護を解除する
244 : ブックのプロパティを取得・設定する
245 : ブックに適用するテーマを変更する
246 : 要素ごとに異なるテーマをブックに適用する
247 : ブックの編集履歴を非表示にする
248 : 指定したブックを編集履歴の一覧から削除する
249 : 編集履歴の一覧をまとめて削除する
250 : ブックをメールに添付して送る
251 : ブックを最終版にする
252 : ブックをWeb形式で保存する
253 : ブックをPDF形式で保存する
254 : ファイルを選択するダイアログボックスを表示する
255 : フォルダーを選択する ダイアログボックスを表示する
256 : 新しいブックでテキストファイルを開いて列単位でデータ形式を変換する
257 : 固定長フィールド形式のテキストファイルを開く
258 : カンマとタブで区切られたテキストファイルを開く
259 : 新しいブックを作成せずにテキストファイルの内容を読み込む
260 : 行単位でテキストファイルを読み込む
261 : テキストファイルのすべての内容を高速に読み込む(Getステートメントの場合)

261だけHS時代の冥みたいになっている。
7割くらいが新出のワードなので、全くイメージが湧かない。


2021/7/16完了分

225 : [ファイルを開く]ダイアログボックスを表示してブックを開く
226 : 開いているすべてのブックを上書きを保存する
227 : 新規ブックに名前を付けて保存する
228 : 同じ名前のブックが保存済みの場合は上書き保存する
229 : 同名ブックの存在を確認してから保存する
230 : マクロの有無を調べてからブックを保存する


2021/7/15完了分

216 : 一部のセルへの入力を可能にしてワークシートを保護する
217 : ワークシートが保護されているかどうかを確認する
218 : ワークシートの保護を解除する
219 : 数式を非表示にしてワークシートを保護する
220 : 表以外の部分へのスクロールとセル選択を制限する
221 : ブックを参照する
222 : 指定したブックをアクティブにする
223 : 5つのワークシートを持つ新規ブックを作成する
224 : カレントフォルダーにあるブックを開く

明日の朝が早いので、タイトルは明日の夜に書く。


2021/7/14完了分

206 : ワークシートを削除する
207 : ワークシートを移動する
208 : ワークシートをコピーしてシート名を変更する
209 : 複数のワークシートをまとめて新規ブックにコピーする
210 : 同じシート名があるかどうかを確認する
211 : 指定したワークシートだけ残してほかのワークシートを削除する
212 : シート見出しの色を変更する
213 : ワークシートを並べ替える
214 : ワークシートの表示と非表示を切り替える
215 : シート見出しの表示と非表示を切り替える

年内には終わるペースか。


2021/7/13完了分

197 : 入力値に応じた選択肢を表示する
199 : ワークシートを参照する
200 : ワークシートを選択する
201 : 複数のワークシートを選択する
202 : 前後のワークシートを参照する
203 : 選択されているワークシートを参照する
204 : ワークシートを末尾に追加する
205 : シート名を指定してワークシートを追加する

難度のバランスが悪い。
勉強においても多少は特攻要素が必要。
ひとまず読書の方で特攻要素を補う。


2021/7/12完了分

192 : セルの値によって表の行に色を付ける条件付き書式を設定する
193 : 重複する値を持つセルに色を付ける 条件付き書式を設定する
194 : セル範囲に入力規則を設定する
196 : 入力用の選択肢を設定する
198 : スパークラインを表示する

1つ難解なやつがあり、もう1つは上手く動かなかったので明日に回す。


2021/7/11完了分

150 : データの表示フォントを変更する
151 : 標準フォントに戻す
152 : セルのフォントサイズをまとめて変更する
153 : 文字に太字と斜体を設定して下線を付ける
154 : 文字に太字と斜体をまとめて設定する
155 : 文字の色をRGB値で設定する
156 : 文字の色をインデックス番号で設定する
157 : 文字の色でデータ件数を調べる
158 : セル内の一部の文字だけ書式を変更する
159 : 文字に[上付き文字][下付き文字][取り消し線]の書式を設定する
160 : 格子の罫線を引いて表組みをまとめて作成する
161 : セル範囲の外周だけ罫線を引く
162 : 場所を指定してさまざまな罫線を引く
163 : 罫線を消去する
164 : セルの背景色を設定する
165 : セルの背景色に濃淡を付ける
166 : セルにテーマの色を設定する
167 : セルに網かけを設定する
168 : セルにグラデーションを設定する
169 : 同じセルの色の数値の合計を求める
170 : 土日の行に色を設定する
171 : 祝日の行に色を設定する
172 : セルにスタイルを設定して書式を一度に設定する
173 : 現在のブックにユーザー定義のスタイルを登録する
174 : セルに入力されている文字のふりがなを取得する
175 : セルに入力されている文字列にふりがなを設定する
176 : ワークシートへのハイパーリンクを作成する
177 : ファイルを開くハイパーリンクを作成する
178 : 指定したフォルダ―内のすべてのファイルのハイパーリンクを作成する
179 : ハイパーリンクを実行する
180 : ハイパーリンクを使わずに直接Webページを開く
181 : セルのハイパーリンクを文字ごと削除する
182 : 条件付き書式で、セルの値が100%よりも大きいときに書式を設定する
183 : 優先順位を1位にして条件付き書式を追加する
184 : 条件付き書式で、指定した文字列を含む場合に書式を設定する
185 : 条件付き書式で、指定した期間の場合に書式を設定する
186 : 条件付き書式で、上位3位までに書式を設定する
187 : 条件付き書式で、上位50%に書式を設定する
188 : 条件付き書式で、平均値以上の場合に書式を設定する
189 : データバーを表示する 条件付き書式を設定する
190 : 2色のカラースケールを表示する 条件付き書式を設定する
191 : アイコンセットを表示する 条件付き書式を設定する


2021/7/10完了分
143 : セルの表示形式を変更する
144 : セルの表示形式を元に戻す
145 : セルの横方向と縦方向の配置を変更する
146 : セル範囲の結合と結合解除を行う
147 : 文字列の角度を変更する
148 : 文字列を縮小したり、折り返したりして表示する
149 : 列の幅に収まらない文字列を下のセルに表示する