(Excel No18)「セルのテキスト」


今回は、セルの値を書式付きで取得する(つまり、見たまんまの値)方法です。
知っている人には非常に簡単なんですがね。
セルA1に"2000/10/29" という値が入っているとします。
で、書式を設定して"10月29日"と表示している場合に、 MsgBox Range("A1") または、MsgBox Range("A1").value とすると、 "2000.10.29"の様に表示とは違う形式になってしまいます。
それではっちゅうことで、次のような関数を作ってみました。
セルの書式でフォーマットしてしまおうということです。

  '対象セルの値を現在の表示形式の文字列で返す
  Function getFormatValue(iRange As Range) As String
      With iRange
          getFormatValue = Format(.Value, .NumberFormatLocal)
      End With
  End Function

ちょっと面白いかなと思ったんですが、実は問題がありました。

この例の場合は上手くいくんですが、設定している書式によってはそうもいかないんですね。

実は、セルの書式に使用する文字と、Formatの文字とは少し違うようなんです。

大体同じなので、同じだろうと思っていたのですがね。

ちゃんちゃん!

・・・と終わってしまっては、意味が無いですね。

結局どう解決するかというと、実は非常に簡単な事でした。

なんのこたあない、MsgBox Range("A1").Text とすれば良いんですね。

教訓: 無駄な努力はするな。 ちゅうわけですな。

ちゃんちゃん!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください