なんだかGoodVibes

日々の勉強メモです。

VBA

RangeとCellsについて

VBA

RangeとCellsって似ているようで似ていない… この2つの使い方について違いをメモ。 Rangeの使い方の基本は以下ですね。 ' セルA1に10を出力 Range("A1").Value = 10 ' B1:C3の範囲内のセルに20を出力する Range("B1:C3").Value = 20 ' 「Data」と名前定義し…

Mac版ExcelでActiveXエラー

VBA

Windows で作成したマクロを動かしたら 「ActiveX コンポーネントはオブジェクトを作成できません」 とエラーが表示され、どうにもこうにも動かない… 該当箇所では以下の記載。 CreateObject(“Scripting.Dictionary”) Dictionaryオブジェクトの宣言部分でし…

セル変化時のイベント

VBA

セルが選択されたり、変化があった場合に なにかイベントを発生したことありますよね。 そんなときはワークシートイベントです。 普段、コードを書くときは標準モジュールを追加して 書いていると思います。 ワークシートイベントは、"Sheet1" とかシートの…

VBAでのcontinue

VBA

C#とかの言語だとcontinue ってありますよね。 ループで後続の処理を飛ばして次のループいくやつですね。 なんと、VBAではcontinue がありません。 なので、VBAでcontinueのようなことをしたい場合は 以下のようにします。 Do While ActiveCell.Value <> "" …

名前定義のルール

VBA

エクセルの名前定義に使える文字にはいくつかのルールがあります。 忘れそうなのでメモ。 C, c, R, r の一文字の名前は使用不可 スペースは使用不可 最初の文字は、文字, アンダーバー(_), 円記号(¥)が使用可能 大文字小文字は区別されないため、list とList…

空白セルになるまで処理を行う

VBA

エクセルのデータを操作するとき セルに値が入っている間は処理を続けるって処理を よくすると思うのでサンプルを作成しました。 ' ループ対象の列の先頭セル Range("A1").Select ' 空白セルでない間はループする Do While ActiveCell.Value <> "" ' 空白セ…

ペースト時の入力規則の維持と入力値チェック

VBA

入力規則を設定しているセルに対して コピペすると入力規則が壊れてしましますよね。 しかも、リストの場合、エラー表示を抑止している場合 リストに設定されている値以外も 貼り付けることが可能になってしまいますよね。 今回は、ペースト時に入力規則を復…

変数と定数の使い方

VBA

最近VBAの勉強を始めたので、基礎からメモ。 まずは変数。 Dim 変数名 As データ型 と定義します。 変数の宣言と同時に初期値の代入はできません。 以下、OKのコードとNGのコード。 // OK Dim num As Integer num = 100 // NG 宣言と同時に初期値は代入でき…