
いつもお世話になっております。
早速ですが、ExcelVBAでNZ関数を使いたいのですが、
「実行時エラー'429'
ActiveXコンポーネントはオブジェクトを作成できません。」
とエラーが出て、うまくいきません。
実現したい結果は、テキストボックスに入力された値に対して
Nullチェックし、Nullの場合、変数に"名無し"と入力するとった
処理です。
ロジックは以下のように書きました。
Dim strName As String
strName = Nz(txtName.text,"名無し")
環境は以下の通りです。
・Windows Vista Home Premium
・Excel2007
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
Nz関数は、VBAのメンバではなく、Accessアプリケーションのメンバですので、
残念ながらExcelでは使用できません。
(下図を参照)
代替策としては、IIF関数とIsNull関数(ともにVBAのメンバ)を組み合わせるのが
簡単かと思います。
【現在】
strName = Nz(txtName.Text, "名無し")
【修正案・1】
strName = IIF(IsNull(txtName), "名無し", txtName.Text)
【修正案・2】
strName = txtName.Text & IIF(IsNull(txtName),"名無し", "")

No.2
- 回答日時:
>ExcelVBAでのNZ関数
のExcelが間違いなければ、エクセルVBAの関数でNZ関数は無いのでは。
アゥセスとちょっとセル(ACCESSではフィールドの各セル)の未入力の考えが違うような気がする。
エクセルのセルでは""で判定してます。
>ActiveXコンポーネントはオブジェクトを作成できません
2007以前でのテストですが
Sub test01()
Dim strName As String
strName = Nz(txtName.Text, "名無し")
End Sub
を実行すると、NZで「SubまたはFunctionが定義されていません」とでます。
エラーを推測している場所が違うのでは。
関係ないとは思うが、2007で変わっていることが原因ならすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
レコードが存在しなかった場合
Microsoft ASP
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
VBAで長さ0の文字列をNullに変換したい
Visual Basic(VBA)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
Excel VBAからAccessマクロを実行したい
Visual Basic(VBA)
-
7
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
8
Accessのコンボボックスの値が消える
Excel(エクセル)
-
9
ウォッチ式の文字数制限について
Visual Basic(VBA)
-
10
Accessで数値型にNULLをInsertするとエラー
その他(データベース)
-
11
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
12
レコードセットにnullの場合
Visual Basic(VBA)
-
13
Access サブフォームでの選択行の取得
その他(データベース)
-
14
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
15
ExcelからACCESSへ接続するとエラーになる
Excel(エクセル)
-
16
VBA:Openステートメントで開いたCSVファイルの特定行を削除する方法
その他(プログラミング・Web制作)
-
17
AccessのWHERE句において、変数は使用できますか?
Access(アクセス)
-
18
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
19
コードでオブジェクトを最前面に
Visual Basic(VBA)
-
20
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
VBAからPDFファイルにパスワー...
-
エクセルのVBAの標準モジュール...
-
「Columns("A:C")」の列文字を...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
VBA:オートシェイプの線の長...
-
VBA msoShapeBlockArcで扇形の...
-
上下の位置揃えについて
-
エクセル エラー438
-
Word2007数式でIMEオン/オフを...
-
VBA オブジェクトが空かどうか...
-
VBAでエクセルに入力された複数...
-
ある文字列が全て数字であるか...
-
VBAでWebページにセルの値を入力
-
VBでPDFファイルを編集する
-
エクセルマクロエラー「'Cells'...
-
Excel VBA オブジェクトマクロ ...
-
AccessVBAで「dim dbs as datab...
-
Excel VBA Collection.add で R...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
PowerPointVBAでスライドマスタ...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
テキストボックス中の文字列の...
-
VBAからPDFファイルにパスワー...
-
VBAで既に開いている別アプリケ...
-
Excel VBAでIEにアクセスするプ...
-
オブジェクトが見つかりません
-
ExcelVBAでのNZ関数について
-
エクセルVBAでcode128のバー...
-
WordにOLEで埋め込んだExcelでW...
-
AccessVBAで「dim dbs as datab...
-
エクセルマクロエラー「'Cells'...
-
エクセル エラー438
-
[VBA]CDOメッセージ送信エラー
-
VBAで作成するメール(開封確認...
-
VBScriptでファイルの日時順(降...
おすすめ情報