Excel VBA を使ってグラフを描く

素人、グラフに挑戦する ExcelVBAでグラフを描く 実は、今までほとんどExcelでグラフを使ったことがなかったのである。 まったくグラフを使うことがなかったわけではないが、ずーっと前に誰かが作ったグラフをちょこちょこっといじくる程度で乗りきっていた…

範囲内の文字列を配列化するFunction

範囲内の各セルの値(文字列)を配列化するFunction 範囲内の文字列の配列化 この間、 特定の文字列のみ狙い撃ちでゴシック体にする みたいなくそめんどくさい作業に遭遇した。 もちろん、ちゃちゃっとコード書いて瞬殺したんですが、そのときに、 対象の文…

「"」(ダブルクォーテーション)のエスケープ

「"」(ダブルクォーテーション)のエスケープ 恥ずかしい告白 まことに今さらながら、実は、 「"」(ダブルクォーテーション)のエスケープについて、ちゃんと理解していなかったのである! では、どうしていたのかというと、 そのときどきでテキトーに書い…

HTMLのtable要素を作るFunction(2)

HTMLのtable要素を作成するマクロの改良 前回の akashi-keirin.hatenablog.com こいつを改良してみた。 行・列結合への対応 HTMLのtable要素で、行結合とか列結合をする場合は、タグとかタグの中に、それぞれ「rowspan="2"」とか、「colspan="3"」などと書き…

モジュール名と同名のプロシージャ

「モジュール」とは何なのか? 「Module1」プロシージャ問題 つらつらとTwitterを眺めていると、フォローしている方が モジュール名とプロシージャ名を同じにしてCallで呼ぼうとするとエラーが出ます。 (中略) 「モジュールではなく、変数またはプロシージャ…

HTMLのtable要素を作るFunction

HTMLのtable要素を作る HTMLで表を作るのはメンドクサイ Excelでちゃちゃっと表を作って、それをHTMLタグで囲って構造化するマクロを作った。 リスト1 標準モジュール Public Function createHTMLTable( _ ByVal targetRange As Range, _ Optional ByVal ha…

Application.Intersectメソッドを使う

セルが指定した範囲内にあるかどうかを判定するFunction Application.Intersectメソッドを使う 何気なく日経ソフトウエアの1月号を読んでいたら、武藤玄氏の連載記事「実務ですぐに役立つExcel VBA」の中に、次のような記述があった。 Intersectメソッドは…

WshScriptのSendKeysメソッドを使う

ち~んw珍現象は続く WshScriptのSendKeysメソッド 前回の akashi-keirin.hatenablog.com コチラの記事にid:imihito さんからコメントをいただいた。 そこでご紹介いただいたのは、コチラの方法。このうち、「WshShellのSendKeysをラップする」というやつを…

Application.SendKeysメソッドの不具合への素人的対応

ち~んw珍現象を解決する SendKeysメソッドで勝手に[Num Lock]キーが押されたみたいになる現象への対応 前回、 akashi-keirin.hatenablog.com コチラで、SendKeysメソッドを実行すると、なぜか[Num Lock]が切り替わってしまうという珍現象をご紹介した。 コ…

VBAのち~んw現象

ち~んw珍現象あれこれ 右クリックメニューが逃げる問題 前回の akashi-keirin.hatenablog.com でご紹介した珍現象。TextBoxコントロールのMouseDownイベントを用いて、ショートカットキー押下と同じ現象を引き起こすプロシージャを呼び出しているのに、な…

自作右クリックメニューが逃げる・・・?

コンテキストメニューが逃げる 「ユーザーフォーム上のテキストボックスで右クリックメニューが使えない」問題 ユーザーフォームに設置したテキストボックス(いや、テキストボックスに限りませんけど)にテキスト入力しているときに右クリックが効かない、…

揮発性関数(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を作ってみる。 今回作成したコード と…