Excel VBA質問箱 IV

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

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


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

【76488】表示形式 わからない 14/12/15(月) 13:36 質問[未読]
【76489】Re:表示形式 くにぞう 14/12/15(月) 14:06 回答[未読]
【76490】Re:表示形式 わからない 14/12/15(月) 14:48 お礼[未読]
【76491】Re:表示形式 γ 14/12/15(月) 21:04 発言[未読]
【76492】Re:表示形式 わからない 14/12/15(月) 21:17 発言[未読]
【76493】Re:表示形式 γ 14/12/16(火) 7:41 発言[未読]
【76494】Re:表示形式 [名前なし] 14/12/16(火) 13:00 発言[未読]
【76496】Re:表示形式 γ 14/12/16(火) 20:58 発言[未読]
【76511】Re:表示形式 [名前なし] 14/12/18(木) 21:13 お礼[未読]

【76488】表示形式
質問  わからない  - 14/12/15(月) 13:36 -

引用なし
パスワード
   selectionにユーザー定義、文字列があっても
debug.print には

 G/標準

としかでてきません。
何がわるいのでしょうか?

Sub uteigiche()
Dim uteigi
Dim buf As String, buf2 As String

For Each uteigi In Selection
  buf = uteigi.Text
  buf2 = Cells(uteigi.Row & "," & uteigi.Column).NumberFormatLocal
  Debug.Print buf
  Debug.Print buf2
Next uteigi

End Sub

【76489】Re:表示形式
回答  くにぞう  - 14/12/15(月) 14:06 -

引用なし
パスワード
   >何がわるいのでしょうか?

↓この行が悪いでしょう。
>  buf2 = Cells(uteigi.Row & "," & uteigi.Column).NumberFormatLocal

↓これでどうでしょうか?
buf2 = Cells(uteigi.Row , uteigi.Column).NumberFormatLocal

【76490】Re:表示形式
お礼  わからない  - 14/12/15(月) 14:48 -

引用なし
パスワード
   ありがとうございます。

うまく表示できるようになりました。

▼くにぞう さん:
>>何がわるいのでしょうか?
>
>↓この行が悪いでしょう。
>>  buf2 = Cells(uteigi.Row & "," & uteigi.Column).NumberFormatLocal
>
>↓これでどうでしょうか?
>buf2 = Cells(uteigi.Row , uteigi.Column).NumberFormatLocal

【76491】Re:表示形式
発言  γ  - 14/12/15(月) 21:04 -

引用なし
パスワード
   >>buf2 = Cells(uteigi.Row , uteigi.Column).NumberFormatLocal

buf2 = uteigi.NumberFormatLocal
のほうがより自然ですね。
.Textのほうはそうされているのに・・・。

# ところで、
# Cells("2,1") は Cells(21)のように解釈されるみたいですね。
# こちらもすぐには想定できなかった。

【76492】Re:表示形式
発言  わからない  - 14/12/15(月) 21:17 -

引用なし
パスワード
   buf2 = uteigi.NumberFormatLocal
確かにこちらの方がスマートですね。

作業をしててもうひとつ不明点が。


Sub uteigiche()
Dim uteigi
Dim buf As String
Dim ms As Boolean

For Each uteigi In Selection
  buf = uteigi.NumberFormatLocal

    Debug.Print uteigi, uteigi.Text
    uteigi.Value = uteigi.Text
    ms = True
  'End If
    
Next uteigi

If ms Then MsgBox "表示形式に注意して下さい。", vbCritical

End Sub


uteigi.Text → 14,200 (通貨、会計で,を表記してます。)
uteigi →  14200

uteigi.Value = uteigi.Text

シート上で表示もvalueも 14200 です。

14,200にはできないのでしょうか?

▼γ さん:
>>>buf2 = Cells(uteigi.Row , uteigi.Column).NumberFormatLocal
>
>buf2 = uteigi.NumberFormatLocal
>のほうがより自然ですね。
>.Textのほうはそうされているのに・・・。
>
># ところで、
># Cells("2,1") は Cells(21)のように解釈されるみたいですね。
># こちらもすぐには想定できなかった。

【76493】Re:表示形式
発言  γ  - 14/12/16(火) 7:41 -

引用なし
パスワード
   > 14,200にはできないのでしょうか?
そういう文字列にしたいということですか?
それはなぜですか?
実体としては数値で、その表示形式を工夫するという現状では
どんなまずい点がありますか?

uteigi.Value = uteigi.Text
とした段階で、Excelが気を利かせて数値と認識してしまうのですが、
どうしてもということなら書式を文字列にしたうえで(マクロ記録で得られます)
uteigi.Value = Format(uteigi.Value,"#,###")
などとしてはどうですか?

【76494】Re:表示形式
発言  [名前なし]  - 14/12/16(火) 13:00 -

引用なし
パスワード
   お返事ありがとうございます。

エクセルの表記からいらない部分を取り除く
     ↓
いる部分は表記のまま。.valueじゃなく見た目のまま
     ↓
    textタブ区切り
     ↓
    印刷

以上の工程が発生するためです。

selection部分を見た目のまま新規シートにコピーできたらbestです。

* uteigi.Value = Format(uteigi.Value,"#,###")
  参考にさせて頂きます。

 ややこしくて申し訳ありません。


▼γ さん:
>> 14,200にはできないのでしょうか?
>そういう文字列にしたいということですか?
>それはなぜですか?
>実体としては数値で、その表示形式を工夫するという現状では
>どんなまずい点がありますか?
>
>uteigi.Value = uteigi.Text
>とした段階で、Excelが気を利かせて数値と認識してしまうのですが、
>どうしてもということなら書式を文字列にしたうえで(マクロ記録で得られます)
>uteigi.Value = Format(uteigi.Value,"#,###")
>などとしてはどうですか?

【76496】Re:表示形式
発言  γ  - 14/12/16(火) 20:58 -

引用なし
パスワード
   ▼[名前なし] さん:
> ややこしくて申し訳ありません。
ってゆうか、意味が正確にとれません。
>    textタブ区切り
言葉を省略せずに普通に説明してください。

【76511】Re:表示形式
お礼  [名前なし]  - 14/12/18(木) 21:13 -

引用なし
パスワード
   返信遅くなりませいてみません。

なんと説明したらいいのかわかりません。
うまくまとめれたらまた投稿します。

ご迷惑おかけしました。


▼[名前なし] さん:
>お返事ありがとうございます。
>
>エクセルの表記からいらない部分を取り除く
>     ↓
>いる部分は表記のまま。.valueじゃなく見た目のまま
>     ↓
>    textタブ区切り
>     ↓
>    印刷
>
>以上の工程が発生するためです。
>
>selection部分を見た目のまま新規シートにコピーできたらbestです。
>
>* uteigi.Value = Format(uteigi.Value,"#,###")
>  参考にさせて頂きます。
>
> ややこしくて申し訳ありません。
>
>
>▼γ さん:
>>> 14,200にはできないのでしょうか?
>>そういう文字列にしたいということですか?
>>それはなぜですか?
>>実体としては数値で、その表示形式を工夫するという現状では
>>どんなまずい点がありますか?
>>
>>uteigi.Value = uteigi.Text
>>とした段階で、Excelが気を利かせて数値と認識してしまうのですが、
>>どうしてもということなら書式を文字列にしたうえで(マクロ記録で得られます)
>>uteigi.Value = Format(uteigi.Value,"#,###")
>>などとしてはどうですか?

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