• ベストアンサー

Excelでセルからの表示形式を取得

Excelでセルからの表示形式を取得 関数またはVBAで、セルから表示形式を取得するにはどのようにすればいいでしょうか? (標準・文字列など)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>関数またはVBAで 関数と書いている点は、Excelの関数の特徴の勉強不足だと思う。 Excelの関数は、式を入れたセル以外の他の「セルの値」を問題にして、それらを加工して、「セルの値」を返すものです。 Excel関数は、セルの書式や、その中の1つ表示形式を問題にするものではありません。 関数では、のっけから考慮外のはずなんです。 しかし少しExcelの関数を知っている人だと、「CELL関数」があると言われそうです。 しかしこれはLOTUS123などとの互換性を採るためにあるものでれいがいです。また、 http://ohpa.net/modules/xlnote/content0039.html のように特殊な戻り値になっています。 ーー だからユーザー定義などの設定された「表示形式の文字列」を得たいなら、VBAでやることになる。 A列の設定に対し Sub test01() For i = 1 To 5 Cells(i, "D") = Cells(i, "A").NumberFormat Next i End Sub を実行して 私のケースの場合は、D列D1:D5に #,##0 #,##0 #,##0 m/d/yyyy h:mm;@ のように表示されます。 ーーー ユーザー関数化することはたやすい。 標準モジュールに Function fmt(a) fmt = a.NumberFormat End Function と定義して 例えばE1セルに=fmt(A1) と入れて下方向に式を複写すると(上記と同じケースで)E1:E5は #,##0 #,##0 #,##0 m/d/yyyy h:mm;@ のようになる

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

Sub macro1()  MsgBox Range("A1").NumberFormat  MsgBox Range("A1").NumberFormatLocal End Sub などのように。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

cell関数で第一引数が"format"ですね。それぞれの書式に応じてど んな値か返ってくるかはヘルプを読むか、自分で試して下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル セルの表示形式「文字列」だけを抽出したい

    エクセル2007を使用しています。 A列に数字が入力されていますが、そのセルの表示形式は、「標準」「数値」「文字列」とバラバラです。 この「文字列」のセルだけを抽出したいのです。 例えば、関数などを利用して、B列に表示するなど。 よろしくお願いします。

  • EXCELのセルの書式設定-表示形式について

    Excelで、表示形式が自動で戻る方法を教えてください。 例えば、 セル「A1」の表示形式をセルの書式設定にて「文字列」にします。 そして、セル「A1」に値を入れます。(例えば012等) そうすれば、この値は文字列として、「012」と表示されます。 その後、セル「A1」の表示形式を「標準」に戻した時に、 自動的に標準に戻りゼロが消えて、「12」と表示されると思ってたんですが、 「012」のままでした。 ただ、ファンクションキーの「F2」や、セル「A1」をダブルクリックして、 一度、セル「A1」を編集状態にして「Enterキー」を押したら、標準に戻ります。 表示形式を「標準」に変えた時点で「標準」に戻る方法をどなたかご教授願います。 ちなみに使用しているのは「Excel2000」です。 以上宜しくお願いいたします。

  • エクセルの表示形式の変更について

    エクセルの表示形式の変更について質問させていただきます。 今複数のセルに数字が入っていて、現在の表示形式は『標準』です。 セルに入っている数字はそのまま、表示形式を『文字列』にしたいと思っています。 変更したい範囲を選択して、セルのプロパティの表示形式を変更をしますが、 これだけでは実際に変わらず、対象セルのダブルクリック等で一度セル内の編集状態にすれば、文字列に変わるようです。 わざわざセルの編集状態にせず、対象セルの表示形式を一括で変更するにはどのようにすればよいのでしょうか。 『文字列』→『数字』は形式を指定して貼り付けの乗算等を使えばできたのですが、その逆となりますとうまくできませんでした。 お知恵をいただけますようお願いいたします。

  • Excelの表示形式について

    Excelの表示形式について。。Excel2007ですが、セルの書式設定の表示形式が初期状態で、必ずユ-ザ-定義になっており、6-1と入力すると必ず6月1日と表示されます。またそのセルを標準に変更して6-1と入れても変わりません。ユ-ザ-定義のまま変更してません。どうしてでしょうか?仕方なく1個1個文字列に変更しながら打ち込んでますがなぜ、初期状態で標準にならなくなったのでしょうか? なにか自動設定になってるのでしょうか?どなたかわかる方教えてください。お願いします。

  • セル内の数字の表示形式を変えたい。

    エクセル2002を使用しています。 8桁の数字が入力されている列があります。 セルの書式設定の表示形式で確認すると標準になっています。でもおそらく標準ではないようです。セルの左上角にグリーンの三角マークが付いています。標準なら何もつかないはずです。手で再入力すればOKなんですが行数が多いのです。 この数字を標準にする方法はないでしょうか。これをVLOOKUP関数の範囲の左端列にしたいのですが、検索値が標準のためエラーになってしまいます。 良い知恵をお貸しください。 質問がわかりにくいかもしれません。補足要求をお願いします。

  • Excelの表示形式

    Excelのセルに「H17」と文字列で入力されています。 このセルを書式設定の表示形式で「平成17年度」と表示させることはできないでしょうか? よろしくお願いします。

  • エクセルの表示形式(日付→文字)

    エクセルで、2002/12/1のような日付が大量に入っている列があります。 そのセルの表示形式は、現在日付になっているのですが、 文字列に変更する必要が出てきました。 しかし、表示形式を文字列に変更すると、37591のような数字になってしまうセルと、2002/12/1のままのセルが出てきてしまいます。 表示形式を文字列に変えてもすべてのセルが2002/12/1のようになる方法はないでしょうか、よろしくお願いいたします。

  • エクセル2000 異なるセルをくっつけて表示

    こんばんは。 毎度どうもすみません。 「エクセル2000 異なるセルをくっつけて表示」について質問します。 次のような文字があり、日付、曜日、時間は書式設定により表示されてます。(設定を解除すると数字の羅列になる。)   A列  B列  C列   D列   E列 1 09/20 木  10:00  山田  名古屋 2 この表あるそれぞれの文字をひとつのセルに改行して表示させるにはどうすればいいでしょうか?  09/20  木  10:00 に  山田 さん 名古屋 で 会いましょう 上記のようにしたいのです。 「&」記号とchar(10)記号を試してみましたが、日付などが数字になりうまく表示されません。関数では無理でしょうか? やはりVBAかな。 方法があれば教えてください。 

  • EXCEL (VBA)表示形式の変更

    EXCELのセルに"2007/4/30"と入力するとセルの表示形式が自動的に日付になります。 このセルを選択して、表示形式を文字列にすると"39202"となります。 これを"2007/4/30"の表示のまま、文字列に変更することはできるのでしょうか?

  • Excel2007で結合したセルの表示形式

    Excel2007を利用しています。 複数のセルを結合して、500字あまりの日本語を入力しました。 セルの書式設定で「折り返して全体を表示する」の設定をし、表示形式を「文字列」にすると、文字は折り返されず全て”#####・・・”で表示されてしまいます。 表示形式を「標準」のままだとちゃんと表示はされます。 以前のバージョンでは、「標準」でも「文字列」でもどちらでもちゃんと表示されていたのですが、なぜでしょうか? 本来であれば、「標準」のままでいいのですが、少し気になったもので。 ご存知の方、教えてください。

専門家に質問してみよう