タグ

EXCELとvbaに関するGesaku_Gのブックマーク (5)

  • Office TANAKA - Excel VBA Tips[正規表現によるマッチング]

    VBAから正規表現を使うには、VBScriptが便利です。ただし、正規表現をサポートしているVBScriptはVer5.0からですから、IE5.0がインストールされているパソコンでないと使えません。 VBScriptの中で正規表現エンジンを提供しているのはRegExpオブジェクトです。参照設定によるEarly Bindingか、CreateObject関数を使ったLate Bindingで参照します。ここではLate Bindingによるサンプルを紹介します。 まずは、正規表現で使用するオブジェクトとプロパティやメソッドを整理しましょう。 RegExpオブジェクトのプロパティとメソッド

    Gesaku_G
    Gesaku_G 2012/01/10
    例が載ってる、ちょっと分かりやすい。
  • VBAで正規表現を使う

    はじめに 改めて言うまでもないことですが、文字列処理で正規表現が使えると非常に便利です。VBAで正規表現を利用する方法を紹介したいと思います。 対象読者 VBAで正規表現を使用したい方 VBAで煩雑な文字列処理の行う必要のある方 なお、「正規表現についてよくわからない」という方は、以下のページの解説などを参考にしてください。 サルにもわかる正規表現入門 必要な環境 Windows VistaまたはWindows XP VBA開発環境 正規表現を使う前に VBAで文字列比較を行う場合、標準の機能としてStrComp関数やLike演算子があります。 特にLike演算子は、ワイルドカードなどによるパターンマッチングが行えます。正規表現よりも柔軟性は劣りますが、実現したい機能がLike演算子で済むのならば、無理に正規表現は使わずLike演算子を使った方がよいと思います。詳しくは、ヘルプにあるLik

    VBAで正規表現を使う
    Gesaku_G
    Gesaku_G 2012/01/10
    ・・・おっ、これは便利。でも本当は、標準の検索置換ダイアログから正規表現使いたいなあ。
  • VBAでの改行コード変換

    セル内で改行するには、改行したい位置でAlt+Enterキーを押します。 このとき、入力される改行コードは0A(LF)です。Windowsで使われている一般的な改行コードは0D 0A(CRLF)です。 次のようなコードで確認してみました。 Sub Sample1() Dim buf As String, dmp As String, i As Long buf = Range("B2").Text For i = 1 To LenB(buf) dmp = dmp & Hex(AscB(MidB(buf, i, 1))) & " " Next i MsgBox dmp End Sub Excelは文字データをUnicodeで管理しています。入力したそれぞれの文字に該当する文字コードは次の通りです。 田 : 0x7530 中 : 0x4E2D 1 : 0x0031 2 : 0x0032 3 :

  • Office TANAKA - セルの操作[データの取得]

    セルにどんなデータが入力されているかを調べるには、データの入力と同じようにRangeオブジェクトのValueプロパティを参照します。次のコードは、セルA2に入力されているデータを画面に表示します。 Sub Sample1() MsgBox Range("A2").Value End Sub もちろん、データを入力するときと同じようにValueプロパティを省略することもできます。では、データの入力と同じように、複数のセルに入力されているデータを同時に取得することもできるのでしょうか。もちろんできます。しかし、データの入力ほど簡単ではありません。次のコードは、セル範囲A2:A5に入力されているデータを配列bufに取り込みます。 Sub Sample2() Dim buf As Variant, n As Long buf = Range("A2:A5").Value n = InputBox(

  • Excel VBA 入門講座 If ~ ElseIf

    条件により処理を分岐させたい場合は、If~ElseIfステートメントを使用します。Ifは、"If 条件式 Then"の形式で条件を調べて、条件式に合致(式を評価した結果がtrueであるとき)だけその次のステートメントを実行します。条件がtrueでないときは、次の次の条件式の条件を調べます。 If 条件式1 Then 条件式1を満たした場合の処理 ElseIf 条件式2 Then 条件式2を満たした場合の処理 Else 条件式1と条件式2を満たさなかった場合の処理 End If

  • 1