ちょい書きマクロ

親ブックから子ブックを量産する

データを変えて親ブックから子ブックを量産するマクロ 子ブック生成部分を切り出す akashi-keirin.hatenablog.com の続き。 FileSystemObjectオブジェクトのCopyFileメソッドを使うと、子ブックの生成が簡単にできることが分かったので、いよいよ量産体制に…

親ブックから子ブックを生成する

子ブック生成マクロ 親ブックから子ブックを生成する方法 akashi-keirin.hatenablog.com 先日、コチラの記事をうpしたところ、twitterのフォロワーさんから、 FileCopyステートメントでよくね??? 的なリプをいただいたのだった。 私自身、 たかがブック…

String関数なるものの存在を知った

String関数を使う 前回の akashi-keirin.hatenablog.com に、id:imihito さんからコメントをいただいた。 特定の1文字の繰り返しは String関数(名前が紛らわしいですが)を使うと簡単に作れたりします。 VBA.Strings.String$(2, "0") とのこと。 へえ! 知…

ゼロ埋め連番を作成する

Format関数の第2引数は、変数でも良かった ゼロ埋め連番文字列を動的に生成する たとえば、 akashi-keirin.hatenablog.com こんなマクロを使って大量にファイルを生成するような場合、ファイル名の先頭がゼロ埋め連番になっていると非常に都合が良い。 で、…

「クソ」としか言いようのない魔Excelに勝利した

クソのようなExcel様式に打ち勝った クソとしか言いようのないExcel様式 「クソ」としか言いようのないExcel様式に出会った。 簡単に言うと、 1つのセルに複数データが入っている というもの。 しかも、[Alt]+[Enter]によるセル内改行ばかりかと思ったら、…

Wordドキュメントの表の行を削除する

Wordの表の行を削除する Wordドキュメント内の表の任意の行を削除する 差込印刷機能を使って似たような書類のWordファイルを自動的に作成するマクロをよく使う。 akashi-keirin.hatenablog.com Excelで表さえ作ってしまえば、人力でポチポチやるよりも圧倒的…

セル内のアンダーライン部分のみフォントを変える

文字列のうち、アンダーライン部分のフォントだけを変える ツイッターのフォロワーさんの「漢字テストの問題をランダムに作成できんかなー」みたいなツイートに反応して、どうやったらできるのか考えてみた。 傍線部分だけゴシックにしないといけない 文字列…

重複のない乱数発生のアルゴリズムを考えてみた

重複のない乱数を作る 重複のない乱数を発生させるアルゴリズムを考えてみた。まあ、ちょこっとggったらスマートなやつが見つかるとは思ったけど、自分で考えるというのが大事だと思ったのですよ。 素人丸出しのやり方なので、笑ってくれたらいいと思います…

文字列の中の必要な部分にだけ書式設定をする

指定した文字の書式だけを変更する 記入見本作り 記入例を作りたかったんだが、日付の欄は、 こんな感じで、「月」と「日」と「(」、「)」をあらかじめ入れておいて、月・日・曜日だけを書いてもらうようにしている。 んで、記入者に書いてもらう部分だけ…

データ抽出用クラスを作る

データ抽出用のクラス AdvancedFilterメソッドを気軽に使う あんまり役に立たないと思うけど、ちょっと作ってみた。 準備として、 データ抽出元のシートを用意。 こんなふうに抽出条件設定用の表を作り、 セル範囲に名前を付けておく。 ちなみに、抽出条件は…

文字列のカッコで括られた部分だけを狙い撃ちで削除するマクロ (2)

ネストされたカッコにも対応する 前回の記事が、この過疎ブログには珍しく反響があったので、ちょっと追加。 Replaceメソッドを使う方あり、Split関数を使う方あり、果ては正規表現を使うツワモノまで現れる始末……。 こうなったら、私も意地になって改良を加…

文字列のカッコで括られた部分だけを狙い撃ちで削除するマクロ

セル内のカッコで括られた文字列のみ削除する 都道府県番号の一覧表 ひょんなことで、都道府県番号の一覧表が欲しいなあと思ってggってみたら、 こんな一覧ばっかり(画像はWikipediaのものです)で、表形式のまま取り込めるものがなかなか見つからなかった…

画像をクリックしたら画像のあるセルに現在時刻を書き込むマクロ

クリックされた図形のあるセルを取得する 前置き 「画像をクリックしたら、その画像のあるセルに現在時刻を書き込むようなことってできない?」と言われたのでやったことがあった。 Excelで勤怠管理の一覧表を作って、出勤時と退勤時にその日の欄にある画像…

小さなクラスを作る(6)~WordドキュメントをPDFに変換する

WordドキュメントをPDFに変換して保存する 仕様 Wordドキュメント そのWordドキュメントがあるフォルダパス ファイル名 以上3つをフィールドとして持つ。 メソッドは今のところ一つだけ。 WordドキュメントをPDFにして指定のフォルダに保存する 元のWordド…

小さなクラスを作る(5)~エラーキャッチをするクラス

エラーキャッチをするクラスを作る そんなことをする意味があるのかどうかはともかく、エラー時にメッセージを表示させるという処理もよく使うので、作ってみた。まあ、何でもかんでもクラスを作っていったら、そのうちコツがつかめるだろうということで勘弁…

小さなクラスを作る(4)~フォルダ作成クラス

きっかけ 写しハンコつきPDFを作るマクロのコードを見直していると、メインの「写しPDFを作るクラス」が結構複雑なクラスになっていることが分かった。ざっと挙げると、 元のWordドキュメントに画像があるかどうかチェック ハンコ用の画像ファイルが実在する…

データ転記マクロ~その3

前回のマクロをさらに書き換える。 今度は、無駄にクラスモジュールを使うよ。 クラスモジュールを挿入して、オブジェクト名を「GambleRacer」にした。 クラスモジュールには下記のコードを書く。 Option Explicit 'フィールド '……(1) Private rcID_ As Long…

データ転記マクロ~その2

前回の転記用マクロを書き換えてみる。 元のコードを下に再掲。ただし、余計なコメントは除去。コメント入りがご所望ならコチラをどうぞ。 Sub sendDataVer1() Dim folderPath As String folderPath = ThisWorkbook.Path Dim objSheet As Worksheet Set objS…

データ転記マクロ

VBA初心者向けブログみたいなタイトルなのに、全然初心者向けじゃなかったので、ちょっと初心者の頃を思い出して書く。 私がVBAにハマるきっかけになったマクロです。 こんな個票のデータを、 こんな集約表に転記していく、という作業です。 集約用のExcelフ…

小さなクラスを作る(3)~ファイルを選択させる

ファイルを選択させるやつも作ってみた。 例によってクラスモジュールを挿入。オブジェクト名はFilePickerにした。 クラスモジュールのコードは下記の通り。 Option Explicit 'フィールド Private gotFileFullPath_ As String Private isCancelled_ As Boole…

小さなクラスを作る(2)~他のアプリケーションの起動チェック

LotusNotesのメールをExcelVBAで自動作成するときは、そもそも自分のアカウントでNotesに接続していないといけない。 「でも、他のアプリケーションが起動しているかどうかなんて、どうやって判定できるんだろ?」とggっていてわりかしあっさりとたどり着い…

小さなクラスを作る(1)~フォルダ選択機能

twitterのフォロワーさんからのアドヴァイス。 曰く、よく使う機能はクラスにしといた方がいいぜと。なるほど。今まで、よく使う処理をSubやFunctionにまとめて一つのモジュールに集めておいて、ライブラリ的に使っていたけど、結局、 どこに何を書いていた…

年度初日直近の月曜日を割り出すマクロ

ちょい書きマクロです。 年度初日(4月1日)が属する週の月曜日の日付を割り出す必要があって、ちょこちょこっと作ってみた。 ワークシートはこんな感じ。 A3セルにはご覧の通りの書式設定を施しておく、と。 A1セルに、西暦年数を入れたら、A3セル…