2017-04-01から1ヶ月間の記事一覧

私はResumeの意味が分かっていなかった

Resumeステートメントの意味が分かっていなかった Resumeステートメントの意味 久しぶりに『Excel VBA本格入門』(大村あつし著)を読み返していたら、 「Resumeステートメント」を引数なしで使うと、エラーの原因となったステートメントに制御が戻ります。 …

画像の配置でいらいらした

ページ横幅の中心位置を割り出そうとしたら謎だらけだった 問題のコード 写しPDF作成マクロを改良して、常にページ横幅の中心部分にハンコ画像が配置されるようにしようとしたら、謎だらけだったので書き残しておく。 リスト1 Dim objRange As Word.Range S…

LotusScriptのメソッドが実行できない……

実行時エラー438に悩まされる オブジェクトは、このプロパティまたはメソッドをサポートしていません 80箇所ぐらいの宛先に、それぞれ添付ファイルの異なるメールを送信する、というしちめんどくさい仕事をすることになった。まあ、Excelで表さえ作ったらメ…

配列関係の覚書(2)

いただいたコメント 前回の記事に達人の皆様からコメントをいただいていたにもかかわらず、返事もできないまま1週間近くたってしまっていた。 私にとっては結構重要なご指摘だったので、コメント欄にではなく、本編にてお返事させていただきます。 id:imihi…

配列関係の覚書

Split関数(VBA)など配列回りの覚書 Split関数 Split関数は、 Split(文字列, デリミタ) とすれば、第1引数の文字列を、第2引数のデリミタで区切った文字列を配列にして返してくれるとっても便利な関数。 んで、めちゃくちゃ基本的なことなんだが、 配列で…

Thunderbirdメール自動作成マクロで複数アドレス指定に対応するのは簡単だった

Thunderbirdで複数の宛先を指定するのは簡単だった Shell関数でThunderbirdのメールを作成する このときにも紹介したが、VBAでThunderbirdのメールを作成するには、次のようなコードを書けば良い。 リスト1 Shell "Thunderbird実行ファイルのフルパス -comp…

VBAで名前の定義をするといろいろ楽

セル範囲の名前の定義をVBAでやったら便利 転記するごとにセル範囲を定義し直す このときみたいなデータ転記系の処理をした場合、ワークシート関数のCOUNTIFなんかを使って種別ごとの数を勘定したい、ということがよくある。 しかしながら、転記件数が変化す…

ActiveWindowプロパティでちょっとハマる……

ActiveWindowプロパティの怪 Excel2010でのエラー 職場のPCはOffice2010なんだが、妙なエラーが出た。 ThisWorkbookモジュールに仕込んだWorkbook_Openイベントマクロでの話。 データを集約するマクロを作っていて、データ集約が終わったら、マクロを仕込ん…

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

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

名簿作りマクロ(4)

名簿作りマクロ メインコードの組立 過去記事 akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com 作成するプロシージャ まず、転記処理の流れを整理しておこう。 【プロシージャ1a】「戦法別」シートへの転記開始用…

名簿作りマクロ(3)

名簿作りマクロの組立 前回 akashi-keirin.hatenablog.com のつづき。 次のような手順で組み立てる。 【手順1】ユーザ定義型・列挙型の宣言 【手順2】定数・変数の宣言 【手順3】転記マクロの組立 このような手順で進めていきます。 ユーザ定義型・列挙型…

Withブロック使用上の注意

Withでまとめるときの注意 実験1 たとえば、ワークシート上に、 こんな表を作ったとする。知性のかけらもないのは許してほしい。 んで、この表に対して、 リスト1 Public Sub test01() Dim sh As Worksheet Set sh = ActiveSheet sh.Range("A1").CurrentRe…

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

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

名簿作りマクロ(2)

文字列をコード番号に置き換えて取得する 前回 akashi-keirin.hatenablog.com のつづき。 VLOOKUPのちょっと邪道な(?)使い方 一覧表の中の文字列をコード番号に変換するのには、VLOOKUPを使うというのが一般的だと思う。 ただ、私は、一覧表にずらずらとV…

名簿作りマクロ(1)

人物データを元に名簿を作成するマクロ 配置転換で行った先で見たもの 新年度の配置転換で、新しい部署に行くことになった。んで、早速名簿作りをしないといけなくなった。 だいたいこんな感じのものが出てきたと思ってください。 どうやら、 こんな元データ…

ループ処理で何もせずにカウンタだけ前に進める

何もせずに次のループに進む ForループやDoループを書いているとき、 先頭で条件判定して、当てはまっていたら何もせずに次のループに進むことができたらいいのに と思うことがちょいちょいある。 もちろん、たとえば、 リスト1 For i = 1 to hogehoge If f…

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

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

脱・初心者のために(1)

私が脱・初心者を自覚した瞬間 ……といっても、ある瞬間にスイッチが入ったように「今日を以て初心者を卒業します。私のことを嫌いになっても、初心者のことは嫌いにならないでください!」とか思ったわけではない。 何度も何度も、それはもう何度も何度も、T…

条件付き書式をまじめに勉強してみた(2)

自動記録されたコードを編集する 前回 akashi-keirin.hatenablog.com のつづき。 仕様 まず、自動記録されたコードは、A3セルの値しか条件判定に使うことができない、というおっそろしくしょぼいものなので、選択範囲内全てにA列のセルの値次第で書式設定…

条件付き書式をまじめに勉強してみた

条件付き書式を設定するマクロ 年度最終日、さっさと仕事を済ませて華麗に帰ってやろうと思っていたのだが、新年度すぐに使う予定表に一つ機能を付け加え忘れていたことに気づいた。ワンクリックで1年分のカレンダーが更新されるようにしていたのに、土日の…