
いつもお世話になっております。
早速ですが、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も見ています
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
レコードが存在しなかった場合
Microsoft ASP
-
-
4
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
5
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
6
Access サブフォームでの選択行の取得
その他(データベース)
-
7
Accessで数値型にNULLをInsertするとエラー
その他(データベース)
-
8
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
9
ExcelからACCESSへ接続するとエラーになる
Excel(エクセル)
-
10
VBAで長さ0の文字列をNullに変換したい
Visual Basic(VBA)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
13
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
14
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
15
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
16
レコードセットにnullの場合
Visual Basic(VBA)
-
17
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
18
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
Accessのフォームにて、詳細行のボタンを行の内容により、表示/非表
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「Columns("A:C")」の列文字を...
-
worksheetFunctionクラスのVloo...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
テキストボックス中の文字列の...
-
オブジェクト変数の取得について
-
UserForm1.Showでエラーになり...
-
Excel VBAでIEにアクセスするプ...
-
実行時エラー 3265「要求された...
-
EXCEL VBA オートシェイプナン...
-
VBAで別のシートに図形描画
-
PowerPointVBAでスライドマスタ...
-
VB6.0上でExcelオブジェクトを生成
-
CreateObjectとGetObjectの違い
-
Visual Basic.NETのエラー("オ...
-
VBAで Set wb = Sheets(1).Cop...
-
VBScriptからDLL参照設定したい
-
コンパイルエラーの対処がわか...
-
[C#]static void 関数内でthis
-
AccessVBAで「dim dbs as datab...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
上下の位置揃えについて
-
ExcelVBAでのNZ関数について
-
VBAで既に開いている別アプリケ...
-
VBAで Set wb = Sheets(1).Cop...
-
AccessVBAで「dim dbs as datab...
-
EXCEL VBA オートシェイプナン...
-
オブジェクト変数またはWITHブ...
-
[VBA]CDOメッセージ送信エラー
-
エクセルマクロエラー「'Cells'...
-
findメソッドの変数について
-
オブジェクトが見つかりません
-
ある文字列が全て数字であるか...
-
オブジェクト変数の取得について
-
CreateObjectとGetObjectの違い
おすすめ情報