Excel VBA質問箱 IV

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

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


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

【32842】セルに設定された書式(表示形式)の取得方法について ken 05/12/24(土) 12:07 質問[未読]
【32843】Re:セルに設定された書式(表示形式)の取得... ponpon 05/12/24(土) 12:17 発言[未読]
【32846】Re:セルに設定された書式(表示形式)の取得... ken 05/12/24(土) 14:42 お礼[未読]

【32842】セルに設定された書式(表示形式)の取得方...
質問  ken  - 05/12/24(土) 12:07 -

引用なし
パスワード
   はじめまして、kenと申します。

以下、セルに設定されている書式の取得方法に関する質問になります。

[セルの書式設定]の[表示形式]から、分類に「会計」、記号に「USD」を設定
したとして、このUSDなどの通貨記号をExcel関数やVBAを使って取得するには
どのようにしたらよいのでしょうか?

有志の皆様、ご教示のほどよろしくお願いします。

【32843】Re:セルに設定された書式(表示形式)の取...
発言  ponpon  - 05/12/24(土) 12:17 -

引用なし
パスワード
   こんにちは。

Sub test()

MsgBox Range("A1").NumberFormatLocal
MsgBox Left$(Range("A1").Text, 3)
End Sub

意味が違ってましたら、すみません。

【32846】Re:セルに設定された書式(表示形式)の取...
お礼  ken  - 05/12/24(土) 14:42 -

引用なし
パスワード
   ponpon様、
的確かつ迅速なご回答、ありがとうございます。

正に、知りたかったのはNumberFormatLocalプロパティでした。
ですが、2つ目の表現形式をそのまま文字列化したデータがTextプロパティで
取得できることを教えていただき、こちらでやりたいことができました。
# 恥ずかしながら、このようにTextが使えることを知りませんでした。

今回のケースでは、以下のように通貨記号の設定されたセルを引数にとるユー
ザー定義関数を定義することで、解決しました:

■ユーザー定義関数
Function GetCurrencyCode(Target As Range)
GetCurrencyCode = Left$(Trim(Target.Text), 3)
End Function

■利用方法
A1に設定されている通貨記号をB1の値として取得する場合のセルB1の値:
=GetCurrencyCode(A1)

本件、誠にありがとうございました。


▼ponpon さん:
>こんにちは。
>
>Sub test()
>
> MsgBox Range("A1").NumberFormatLocal
> MsgBox Left$(Range("A1").Text, 3)
>End Sub
>
>意味が違ってましたら、すみません。

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