VBA

Wordを扱う際にVBAとVBとの違いに戸惑わないための備忘録

VBでWordを操作する処理を作る際、Word VBAで動作を確認したものをVBに持ってくるというやり方を基本的にしている。が、それだと上手く行かないことがあったので、ここに備忘録としてメモしておきたい。例えばこれ。<VBA> Selection.MoveLeft Unit:=wdChar…

データの内容に応じてオートシェイプを配置していく

VBA

ちょっと聞かれたので、回答用にここにメモ。「データ」シートに下記のようなデータがあるとする。 A B 1 a 2 2 b 3 3 c 2 4 d 4 5 e 1 6 f 6 7 g 3 このデータを読み取って、下記要領で「結果」シートに書き込みを行う。 「データ」シートのB列の値を「結果…

VB(VBA)で、濁点半濁点が1文字になっているものを濁点半濁点付き文字に変換する

VBA

必要に迫られて、というほど迫られてもいないけれど、念のための処理が必要になったので作った。 「半角カナ」ではなく「全角カナ」になっている前提。 '全角2文字で入力されている濁点、半濁点を全角1文字に変換する(例:カ゛→ガ) Function convZenkakuDa…

VB6やVBAで「長押し」処理を実装する

VBA

未だにVB6で作られたシステムを保守している。(保守と言っても、機能追加なども普通にある) ちなみに私が作ったものではないが、種々の事情により完全に私の管理物であり、5年ほどの間にもはや私が作ったと言っても過言ではないくらいリファクタリングした…

どこにも需要がない「今が何回戦なのかを返すFunction」を考えた

トーナメント戦を扱うと、1回戦、2回戦、3回戦と進んでいくのは分かりやすいのだが、どこかで「準々決勝」「準決勝」「決勝」と表記しなければならない。1回戦から順番に数えると6回戦なんだけど、一般的な呼称は「準決勝」のような場合。そこで、「単純に数…

VB(VBA)で数字を漢数字に変換する

VBA

訳あって、「12 → 十二」のように数字を漢数字に変換する必要があったので、VBAで実装してみた。 ちなみにExcelだとセル関数に「NUMBERSTRING関数」というものがあるらしく、最初からそれを使えば楽だったかな、と思わなくもなく。 でも作ってしまったので、…

Wordのルビに関するフィールドコード

故あって、ルビはフィールドコードでどう書かれるかを調べてみた ルビの位置 フィールドコード内容 中央揃え {EQ \* jc0 \* "Font:MS 明朝" \* hps10 \o(\s\up 9(ア),あ)} 均等割付1 {EQ \* jc1 \* "Font:MS 明朝" \* hps10 \o\ad(\s\up 9(イ),い)} 均等…

列Noから列名を取得して返すFunctionを作ってみた

出先ではVB6とExcel VBAを駆使している私。 いろいろあって「クリックしたセルの10列右」とかやりたい時がある。 現在の列 = Activecell.Column とやれば、アクティブなのがA列なら「1」が返ってくる。 なので、例えば 現在の列の10列右 = chr(Activecell.Co…

列名から列Noを取得して返すFunctionを作ってみた

「列Noから列名を取得して返すFunctionを作ってみた」に続いて、逆バージョンも作ってみた。 MsgBox getColumnNoFromColumnName("A") とすると、「1」と表示される。 引数として"Z"を与えれば「26」が返ってくるし、"AA"を与えれば「27」が返ってくる。 ちな…

Access98と2000でのVBAの挙動の違い (項目初期化)

Dim CatalogMaster As InData Open "c:\hoge\hogehoge.txt" For Random As #Fno Len = Len(CatalogMaster) Do Until EOF(Fno) Get #Fno, , CatalogMaster With CatalogMaster 項目1 = Trim(.項目1) 項目2 = Trim(.項目2) 項目3 = Trim(.項目3) End With 'こ…