Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9046 / 13644 ツリー ←次へ | 前へ→

【29652】配列の中身を初期化するには なな 05/10/10(月) 16:44 質問[未読]
【29654】Re:配列の中身を初期化するには [名前なし] 05/10/10(月) 17:54 回答[未読]
【29655】Re:配列の中身を初期化するには ichinose 05/10/10(月) 17:56 発言[未読]
【29656】Re:配列の中身を初期化するには 太公望 05/10/10(月) 17:58 発言[未読]
【29657】Re:配列の中身を初期化するには ichinose 05/10/10(月) 18:07 発言[未読]
【29658】Re:配列の中身を初期化するには 太公望 05/10/10(月) 18:23 発言[未読]
【29659】Re:配列の中身を初期化するには なな 05/10/10(月) 20:19 お礼[未読]

【29652】配列の中身を初期化するには
質問  なな  - 05/10/10(月) 16:44 -

引用なし
パスワード
   基本的なことですけど、わからないのでお聞きします。

for i=1 to 5
  F(i)=""
next

これを実行すると型が一致しませんと出ました。
ヘルプを読んだのですが、いまいち分かり難かったです。

F(1)からF(5)までには、すでに数値が入っています。

それを全部初期化するには、どうすればいいのですか?

【29654】Re:配列の中身を初期化するには
回答  [名前なし]  - 05/10/10(月) 17:54 -

引用なし
パスワード
   ▼なな さん:
>それを全部初期化するには、どうすればいいのですか?

Erase ステートメントをヘルプで調べてみてください。

【29655】Re:配列の中身を初期化するには
発言  ichinose  - 05/10/10(月) 17:56 -

引用なし
パスワード
   ▼なな さん:
こんばんは。

>基本的なことですけど、わからないのでお聞きします。
>
>for i=1 to 5
>  F(i)=""
>next
>
>これを実行すると型が一致しませんと出ました。
>ヘルプを読んだのですが、いまいち分かり難かったです。
>

>F(1)からF(5)までには、すでに数値が入っています。
↑ここのコードも記述してください。

例えば、
標準モジュールに

private f(1 to 5) as long
sub test()
  dim idx as long
  for idx=1 to 5
   f(idx)=idx
   next idx
end sub

を実行して

sub test2()
  dim idx as long
  for idx=1 to 5
   f(idx)=""
   next idx
end sub 

とすれば「型が一致しません」というエラーになりますよね!!
この場合に配列の初期化は、

sub test3()
 erase f()
end sub
又は、
sub test4()
 dim idx as long
 for idx=1 to 5
   f(idx)=0
   next
end sub
となりますが、こういうことでしょうか?

【29656】Re:配列の中身を初期化するには
発言  太公望  - 05/10/10(月) 17:58 -

引用なし
パスワード
   今晩は

初期化なら、 vbNull がいいと思います。

 F(i) = vbNull

でどうですか。
vbNullは何も入ってないの意味です


それから、
Dim F(1 To 5)  As Long 
Dim i As Long
  For i = 1 To 5
    F(i) = ""
  Next
としていたら、Fは数字で宣言していますのでエラーになります。

【29657】Re:配列の中身を初期化するには
発言  ichinose  - 05/10/10(月) 18:07 -

引用なし
パスワード
   ▼太公望 さん:
こんばんは。

>今晩は
>
>初期化なら、 vbNull がいいと思います。
>
> F(i) = vbNull
>
>でどうですか。
>vbNullは何も入ってないの意味です
これ、違うよ!!
Vbnullは Constつまり、定数で1ですよ!!
これは、Vatype関数などで使用するものです。

【29658】Re:配列の中身を初期化するには
発言  太公望  - 05/10/10(月) 18:23 -

引用なし
パスワード
   ▼ichinose さん 今晩は。

>>vbNullは何も入ってないの意味です
>これ、違うよ!!
>Vbnullは Constつまり、定数で1ですよ!!
>これは、Vatype関数などで使用するものです。

msgbox vbnull
で確認しました。
ありがとうございます

【29659】Re:配列の中身を初期化するには
お礼  なな  - 05/10/10(月) 20:19 -

引用なし
パスワード
   ▼なな さん:
>基本的なことですけど、わからないのでお聞きします。
>
>for i=1 to 5
>  F(i)=""
>next
>
>これを実行すると型が一致しませんと出ました。
>ヘルプを読んだのですが、いまいち分かり難かったです。
>
>F(1)からF(5)までには、すでに数値が入っています。
>
>それを全部初期化するには、どうすればいいのですか?


いろいろやってみたら、出来ました。
Dim F(5) as integer

だったのを、
Dim F(5) as string

に変えたら、
f(i)=""
が入りました。

変数宣言の間違いだったのに気がつきました。
みなさんどうもありがとうございました。

9046 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free