Excel VBA質問箱 IV

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

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


4398 / 13645 ツリー ←次へ | 前へ→

【56889】1.未定義配列の見分け方 2.セルの表示文字をそのまま取得する方法 meka 08/7/9(水) 20:26 質問[未読]
【56890】Re:1.未定義配列の見分け方 2.セルの表示... ponpon 08/7/9(水) 20:39 発言[未読]
【56891】Re:1.未定義配列の見分け方 2.セルの表示... りん 08/7/9(水) 20:40 回答[未読]
【56892】Re:1.未定義配列の見分け方 2.セルの表示... ponpon 08/7/9(水) 21:01 発言[未読]
【56893】Re:1.未定義配列の見分け方 2.セルの表示... meka 08/7/9(水) 21:13 お礼[未読]
【56895】Re:1.未定義配列の見分け方 2.セルの表示... Blue 08/7/10(木) 1:11 回答[未読]
【56896】Re:1.未定義配列の見分け方 2.セルの表示... Yuki 08/7/10(木) 7:10 発言[未読]
【56924】Re:1.未定義配列の見分け方 2.セルの表示... meka 08/7/10(木) 21:16 お礼[未読]

【56889】1.未定義配列の見分け方 2.セルの表示文...
質問  meka  - 08/7/9(水) 20:26 -

引用なし
パスワード
   こんばんは^^

エクセルVBAについて分からない事があるので、
質問させて下さい。

1.未定義配列の見分け方
○質問
 動的な配列として宣言した変数が、Redimにより
 配列として実体化されているかを調べる方法 
○ソース
Sub test()

  Dim tmp() As Integer
  Dim flg As Boolean

  If tmp Is Nothing Then ’←配列がまだ実体でない事を調べたい
    flag = True
  End If

End Sub
 「Is Nothing」でも「IsNull」でも見分ける事が
 できませんでした


2.セルの表示文字をそのまま取得する方法
○質問
 セルから値を取得する際、表示されている値を
 取得する方法
○ソース
Sub test1()
  Dim str As String

  str = Cells(1, 2) ’←B1には1と入力している
            ’(形式を指定して実際には1.00と
            ’セルに表示されている)
  
End Sub
 strには1が設定されてしまう。表示されているままの1.00を
 strに設定したい。


よろしくお願いします。

【56890】Re:1.未定義配列の見分け方 2.セルの表...
発言  ponpon  - 08/7/9(水) 20:39 -

引用なし
パスワード
   ▼meka さん:
>1.未定義配列の見分け方
>○質問
> 動的な配列として宣言した変数が、Redimにより
> 配列として実体化されているかを調べる方法 
>○ソース
>Sub test()
>
>  Dim tmp() As Integer
>  Dim flg As Boolean
>
>  If tmp Is Nothing Then ’←配列がまだ実体でない事を調べたい
>    flag = True
>  End If
>
>End Sub
> 「Is Nothing」でも「IsNull」でも見分ける事が
> できませんでした

↑こちらはわからないので、

↓こちらだけ

>2.セルの表示文字をそのまま取得する方法
>○質問
> セルから値を取得する際、表示されている値を
> 取得する方法
>○ソース
>Sub test1()
>  Dim str As String
>
>  str = Cells(1, 2) ’←B1には1と入力している
>            ’(形式を指定して実際には1.00と
>            ’セルに表示されている)
>  
>End Sub
> strには1が設定されてしまう。表示されているままの1.00を
> strに設定したい。
>
Sub test()
  Dim str As String
  str = Cells(1, 2).Text
  MsgBox str
End Sub

【56891】Re:1.未定義配列の見分け方 2.セルの表...
回答  りん E-MAIL  - 08/7/9(水) 20:40 -

引用なし
パスワード
   meka さん、こんばんわ。

>1.未定義配列の見分け方
>  If tmp Is Nothing Then ’←配列がまだ実体でない事を調べたい
> 「Is Nothing」でも「IsNull」でも見分ける事が
> できませんでした
あまり良い方法とは言えませんが、UboundまたはLboundでエラーになったら実体でないという判定ではダメでしょうか?

>2.セルの表示文字をそのまま取得する方法
> strには1が設定されてしまう。表示されているままの1.00を
> strに設定したい。

こういうことですか?
Sub test()
  MsgBox Cells(1, 2).Text
End Sub

【56892】Re:1.未定義配列の見分け方 2.セルの表...
発言  ponpon  - 08/7/9(水) 21:01 -

引用なし
パスワード
   ▼りん さん meka さん、こんばんわ。
>
>>1.未定義配列の見分け方
>>  If tmp Is Nothing Then ’←配列がまだ実体でない事を調べたい
>> 「Is Nothing」でも「IsNull」でも見分ける事が
>> できませんでした
>あまり良い方法とは言えませんが、UboundまたはLboundでエラーになったら実体でないという判定ではダメでしょうか?

↑これは、私も考えましたが・・・
りんさんと同じだなんて、スキルアップしたかな?

【56893】Re:1.未定義配列の見分け方 2.セルの表...
お礼  meka  - 08/7/9(水) 21:13 -

引用なし
パスワード
   >ponpon さん
>りん さん

早速のご回答ありがとうございます^^


>2.セルの表示文字をそのまま取得する方法
は、str = Cells(1, 2).Textで大丈夫でした。
助かりました。


>1.未定義配列の見分け方
ですが、
>UboundまたはLboundでエラーになったら実体でないという
>判定ではダメでしょうか?
Uboundでエラーを出さないために、事前に配列が実体かどうかを
調べたいんですが、なかなかいい方法が無いですね-^-

【56895】Re:1.未定義配列の見分け方 2.セルの表...
回答  Blue  - 08/7/10(木) 1:11 -

引用なし
パスワード
   (「【46216】未定義配列の判定方法」という過去ログがあるが・・・)

エラーキャッチしないのであれば、APIを使うしかないでしょうね。
掲示板の運用形態が変わってしまったせいか、
過去ログのリンク先は見れなくなってしまっているので、再度リンク先を張ります。
http://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi?mode=al2&namber=37781&rev=&no=0&P=R&KLOG=250

【56896】Re:1.未定義配列の見分け方 2.セルの表...
発言  Yuki  - 08/7/10(木) 7:10 -

引用なし
パスワード
   >1.未定義配列の見分け方
>○質問
> 動的な配列として宣言した変数が、Redimにより
> 配列として実体化されているかを調べる方法 
>○ソース
>Sub test()
>
>  Dim tmp() As Integer
>  Dim flg As Boolean
>
  If Sgn(tmp) = 0 Then
    Debug.Print "サイズ未定義動的配列"
  Else
    Debug.Print UBound(tmp)
  End If
>End Sub

【56924】Re:1.未定義配列の見分け方 2.セルの表...
お礼  meka  - 08/7/10(木) 21:16 -

引用なし
パスワード
   ▼Blue さん:
▼Yuki さん:

・SafeArrayGetDim()
・Sgn()
で配列がRedimされているかを調べる事ができました!!

ありがとうございます^^

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