VBAの勉強を始めてみた

色々試しています。

Tips

SpecialCells(xlCellTypeVisible)メソッドのバグ?を回避する(Tips-16)

今回は、可視セルのみを取得するSpecialCells(xlCellTypeVisible)メソッド使用時のバグと、バクの回避方法について考えてみたいと思います。 VBA界では有名?なのかどうか分かりませんが、非表示の行または列がシート内に1以上ある状態で、単一セル対してSpe…

Option Compare Text でマッチする文字列を全部調べてみた(Tips-15)

今回は以下の記事の続きです。 kouten0430.hatenablog.com Option Compare Textを宣言して文字列比較を行った場合、文字コードが同じもの以外にどんな文字列が類縁の文字としてマッチするのか・・・・・・。前回は比較サンプルが少なく不十分だったので、今回は文…

オブジェクトはメモリの中でどうなってるの?(Tips-14)

注:今回のお話は VBA にそっくりそのまま適用できるかわかりません。一般的なお話として読んでいただければ嬉しいです。 前回、メモリ内部を「オブジェクト」とだけ表現しました。せっかくなのでメモリ内部をもう少し拡大して観察したいと思います。 メモリ…

クラスを実体化するってどういうこと?(Tips-13)

クラスを実体化することの比喩として、「たい焼きの型」と「たい焼き」の話がしばしば用いられます。しかしこの比喩で「なるほど!そうだったのか」と一発で理解できる人は何人いるのでしょうか?回り道をし、色々な角度から考えを巡らせて理解に至った人が…

閉じたままのブックからデータを転記するには?(Tips-12)

「VBAで、閉じたままのブックからデータを転記する方法は無いかにゃー」と思っている人のために、今回は ExecuteExcel4Macro メソッドを紹介します。 ExecuteExcel4Macro? それは何かの最先端技術ですか? いえ、違います。 新しいバージョンの Excel で、 …

語彙的意味に基づく文字列比較とは?(Tips-11)

VBAでは文字列データの比較方法を以下の Option Compare ステートメントで宣言することができます。 Option Compare Binary(又は省略) 各文字列の文字コード数値が比較されます。 Option Compare Text システムのロケールによって決定され、語彙的意味に基…

Like演算子でのパターンマッチングについて(Tips-10)

VBA ではRegExpクラスを利用すれば正規表現を使用することができます。が、そこまでしなくとも Like演算子を使って正規表現のようなパターンマッチングをすることもできます。 覚えることが少ないので初心者にはオススメですし、組み合わせ次第ではそれなり…

Word Rangeの引数指定について(Tips-9)

今回は Word の Range についてです。 名前が同じで用途も似ていますが、Excelの Range とはプログラム上まったくの別物です。 Range の引数はクイックヒントに表示されるように Start:開始文字位置End:終了文字位置 で指定します。 下のサンプルで実際に…

Rangeの引数指定についておさらい(Tips-8)

久しぶりにコードを書くと、Rangeの引数で:(コロン)を使えば良いのか,(カンマ)を使えば良いのか迷ってしまう時があります(@_@;)なので、自分の脳内整理を試みようと思います。 Rangeの引数は Range(引数1,引数2) のように2つまで指定することができま…

ループ処理を極力軽くする方法の模索~混乱編~(Tips-7)

VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、ループ処理を使わなければならない場合に、ループの中に含まれる処理を極力軽くする方法について、模索してみようと思います。 下のように、1~9の数値がラン…

指定した数の行を一瞬で挿入するには?(Tips-6)

VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、VBAで、ユーザーが指定した数の行を挿入する方法についてです。 まず、下のように、For ~Next を使って、指定した数の行を挿入させてみようと思います。アク…

空白以外のセルを一瞬でカウントするには?(Tips-5)

VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、VBAで、セルにデータが有るか無いか(または特定のデータが有るか無いか、でもいい)を調べて、そのデータ数をカウントする方法についてです。 まず、下のよ…

InputBoxのキャンセル判定について(Tips-4)

VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、InputBoxでキャンセルを押された場合の判定についてです。 InputBoxでキャンセルを押されたときに、何らかの処理(例えばプロシージャを終了するとか)をさせ…

多重ループを一気に抜けるには?(Tips-3)

VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 タイトルのとおりですが、コーディングしていると、入れ子になったループの中から一気に抜け出したい場面があります。しかし、下記のように、一番内側のループの中で …

可視セルのみを二次元配列に格納するには?(Tips-2)

VBAの勉強を始めて、これまでに習得したことや、思いついたアレやコレをメモっておきます。 結論から言うと、あらかじめ用意されているプロパティやメソッドなどで、可視セル範囲のみをうまいこと二次元配列に格納することはできないようです。(あくまでも…

結合セルを擬似的に単一セルのように扱うには?(Tips-1)

VBAの勉強を始めてみて、これまでに気づいたことや、習得したこまごました知識などをメモっておこうと思います。 下の画像のように、A1:C3を結合したセルがあります。 見た目は一つのセルのようですが、実際には9個のセル(A1,B1,C1,A2,B2,C2,A3,B3,C3)が含…