2017-01-01から1年間の記事一覧

揮発性関数(Application.Volatileメソッド)

揮発性関数??? Application.Volatileメソッド 前回の akashi-keirin.hatenablog.com に、id:imihito さんからコメントをいただいた。 曰く、「きっと うまく いくでしょう」 `Excel.Application.Volatile`メソッドを使えば、その関数を揮発性関数にできた…

強引にセルを再計算させる

セルの再計算が通用しない場面に対応する 自作ワークシート関数 めちゃくちゃ条件分岐の多い、死ぬほどダルい表を作る必要があった。別に私の仕事でも何でもないんだけれど、泣きついて来られて仕方なく……。 自分の仕事でも何でもないから、仕事中にやるわけ…

連想配列(Scripting.Dictionaryオブジェクト)というものを使ってみた

初めての連想配列 「連想配列」とか、「Dictionary」という言葉は見たことがあったけれど、使ったこともなく、詳しく知ることもなかった。 自作クラスのエラーメッセージを管理するのがメンドクサイなーと思って、「そういえば……」とちょっと調べてみると、…

Application.GetPhoneticが壊れた???

GetPhonetic関数がおかしい??? GetPhonetic関数の異状 Application.GetPhonetic関数は、2回目以降引数を省略すると、まだ返していないふりがな文字列を返すはず。 しかしながら、何か様子がおかしいのである。 たとえば、次のコード。 リスト1 標準モジ…

VBAの「コンストラクタに引数渡せない」問題

VBAの「コンストラクタに引数を渡せない」問題 VBAでクラスモジュールを使い始めたときに必ずぶち当たるのが、 なんでコンストラクタに引数が渡せねえんだよ! この金髪豚野郎!!!!!!!!! 問題だろう。(個人の感想です) これは本当に不便な話で、「VBAのイマ…

OutLookメール自動作成メソッド

メール自動作成ツール~Outlookへの対応 このとき akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com 作成したメール自動作成ツール、LotusNotes、Thunderbirdの両方に対応していて非常に便利なので、重宝している。 で、せっかくなのでOutlookに…

がんばれ! isKanjiメソッドくん!!!!!!!!

文字列から漢字のみ抽出する isKanjiメソッドを強引に使う 前回 akashi-keirin.hatenablog.com 作成したisKanjiメソッドの使いどころを無理矢理発明した。 準備 まず、 こんな風にシートを作っておいて、A1セルに「TextCell」、C2セルに「BaseCell」と名…

文字が漢字かどうかを判定するFunction

文字が漢字かどうかを判定するFunction 漢字かどうかの判定 文字が漢字かどうかを判定するロジックを考えた。 画像の出典はコチラのサイトっす。 Shift_JISの文字コード表を見ると、漢字は 889F以降に割り当てられているっぽい。 16進数の889Fってのは、 こ…

差込データソースとの接続をVBAで行う(2)

差込印刷のデータソースとの接続をVBAで行う Openイベントで接続する 差込印刷機能というのは非常に便利なので、Wordスキルがど素人のレベルでも使っている人は非常に多いと思う。私もそのクチ。ただ、データソースとの接続回りが非常に素人には分かりづらく…

タブ位置をお手軽に設定するアドイン(Word用)

タブ位置を気軽に設定するアドイン akashi-keirin.hatenablog.com これをもとに、アドイン化してみた。 コード ごちゃごちゃなしでコードを全部載せる。 リスト1 標準モジュール Public Sub タブ位置設定() Dim objDoc As Document Set objDoc = ActiveDocu…

Officeのヴァージョンによって処理を切り替える

Officeのヴァージョンに合わせて煽る 私は、別に玄人でも何でもないので、自作のツールに煽りAAを入れる。 中でも気に入っているのが、有名な「ち~んw」のやつw _________ / \ / /・\ /・\ \ |  ̄ ̄  ̄ | ち~んw | (_人_) | | \ |…

差込データソースとの接続をVBAで行う

VBAで差込印刷のデータソースに接続する 差込印刷データソースの指定 以前、差込印刷のレコードごとにWordファイルを生成するということをやったことがあった。 akashi-keirin.hatenablog.com これはこれで、メチャクチャ便利で、重宝しているんだが、フォル…

VBAでテキストボックスのレイアウト設定を操作する

ことごとく「背面」になっているテキストボックスェ…… 業務で引き継いだWordドキュメントがカオス…… 業務でWordドキュメントを引き継いだ。 で、そのWordドキュメントってのがひどいやつで、 40個ぐらい配置されているテキストボックスのレイアウトがことご…

直近○回分のイベント発生日時を配列化するFunctionの修正

直近のイベント発生日時を配列化するFunctionの修正 このとき akashi-keirin.hatenablog.com 作成したFunctionについて、対応できるイベントを増やそうとして、いろいろ不具合に気づいたので修正する。 コードへのリンクはコチラ。 1.無意味な判定をやめる…

「直近○回分のシャットダウン日時」の配列を返すFunction

直近のイベント発生日時を配列化するFunction このとき akashi-keirin.hatenablog.com 作成したFunctionは、 直近のイベント日時を取得するFunctionだったが、これをちょいと改造して、 直近○回分のイベント日時を取得して配列化するFunction にする。 改造…

Join関数について

Join関数というものがある Join関数 前回の記事 akashi-keirin.hatenablog.com に、 id:imihito さんからコメントをいただいた。曰く、 argsByArray 相当処理として、組み込み関数にJoin 関数というものが有ったりします ```vba Join(strArray, "! ") ``` …

配列を引数にすることはできるのか

配列を引数にすることはできるのか 配列を引数にしてみる プロシージャの引数に配列を指定することはできるのだろうか、と思ってやってみた。 とりあえず、 Public Function argsByArray(ByVal ar() As String) As String としてみたら、 こんなふうにいきな…

直近の起動・終了日時を取得するFunction(2)

直近のイベント日時を取得するFunctionの改良 前回 akashi-keirin.hatenablog.com の続きです。 イベントコードを引数として受け取る 前回は、シャットダウン日時を取得するFunction、起動日時を取得するFunctionの2種類を作ったわけだが、記事中でも言及し…

直近の起動・終了日時を取得するFunction

Windowsの起動・終了時刻を返すFunction ※改良版はコチラ。 直近の起動・終了時刻を返す 前回の akashi-keirin.hatenablog.com のリスト1に手を加えて、 直近のシャットダウン日時 今回の起動日時 を取得するFunctionを作ってみる。 今回作成したコード と…

Windowsのシャットダウン日時を取得する

Windowsのシャットダウン時刻を取得する Windwosのイベントログを取得するには? Excel VBA質問箱 IV【74506】Re:VBAシャットダウン時刻取得にて、次のコードを発見した。 リスト1 標準モジュール Public Sub test() '……(1)' Call EnumShutdownDateTime(Ran…

タブ幅やタブ位置をVBAから設定する

VBAからタブを設定する 既定のタブ幅をVBAで操る タブ幅の設定って、結構めんどくさいなあと思っていた。んで、何とかVBAで操作できないものか、とちょっとggってみたんだが、これというものが見つからず(調べ方が悪いだけだと思うけど)、ちょいとマクロ記…

乱数を格納した配列を保持するクラスを作ってみた

乱数を格納した配列を保持するクラス クラスへの移行 前回の akashi-keirin.hatenablog.com で、乱数を格納した配列を作るFunctionを作った。 実は、追記のところで、型指定でVariantを使うブサイクさ問題は解決ずみなんだが、乗りかかった船なのでやってお…

乱数を格納した配列を作るFunction

文字をランダムに並べ替える 乱数を作るのはめんどくさい ランダムに並べ替えるという作業をするときには、乱数を発生させて使えば良いのだが、毎度毎度乱数を発生させる処理を書くのは正直メンドクサイ。 最大数を与えたら、1~最大数をランダムに並べて配…

ユーザーフォームへのコントロールの動的配置

コンボボックスを動的に追加する フォームにコンボボックスを追加する コンボボックスやリストボックスは、ユーザからの入力を受け付けるインターフェースとしては便利なんだが、チマチマ作ることを思うと結構メンドクサイ。 コンボボックスの追加がラクにで…

差込印刷のデータソースにおけるVLOOKUP関数の使用――(2)

差込印刷のデータソースにおけるVLOOKUP関数 akashi-keirin.hatenablog.com この続き。 問題は戻り値の「0」(ゼロ) 差込印刷のデータソースの表でVLOOKUP関数を使うと、検索値によって差し込みたいデータが決まっているようなときは非常に都合が良い。 た…

差込印刷のデータソースにおけるVLOOKUP関数の使用

差込印刷のデータソースにVLOOKUP関数を使うとちょっと困る Wordの差込印刷は気が利く たとえば、Excelで こんな表を作っておいて、差込印刷のデータソースに指定しておく。 Wordの方では こんなふうに差し込みフィールドを設定しておく。 んで、差し込んだ…

○箇月後の○曜日――改良版

「○箇月後の○曜日」割り出しFunctionの改良 akashi-keirin.hatenablog.com VbDayOfWeek型の引数 Twitterのフォロワー氏、及びid:imihito さんが教えてくださった。 vbSundayとかvbMondayって、単なる組み込み定数だと思っていたけれど、正体はVbDayOfWeek列…

○箇月後の直近の○曜日は?

○箇月後の○曜日の日付を求める自作Function 「1箇月後の直近の木曜日を求める」という作業が発生した。別に、暦を見たらいいんだけれど、もし今後たくさんの日付について同じ作業をする必要が生じたらメンドウなので、ちょこちょこっと「1箇月後の直近の木…

WordドキュメントのPDF化ツール――だいぶ本格的になりました

自作ツール「かんたんPDF変換」 3種類のPDF変換をこなすツールを自作した akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com 上記の記事で、Wordドキュメントを編集中にサクッとPDF化するマクロを作ったわけだが、 いっそちゃんとしたツールとし…

Wordドキュメントの編集中のページをサクッとPDF化する

WordドキュメントのアクティブなページのみPDF化 以前、 akashi-keirin.hatenablog.com コチラの記事で、クリック一発で編集中のドキュメントをPDF化するマクロを紹介した。 今回は、題名のとおり、 現在アクティブなページのみPDF化 するマクロを考える。 …