Excel VBA質問箱 IV

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

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


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

【44830】MsgBox関数について akira 06/12/2(土) 21:40 質問[未読]
【44831】Re:MsgBox関数について ponpon 06/12/2(土) 21:50 発言[未読]
【44833】Re:MsgBox関数について akira 06/12/2(土) 22:29 質問[未読]
【44835】Re:MsgBox関数について ponpon 06/12/2(土) 23:35 発言[未読]
【44836】Re:MsgBox関数について 06/12/3(日) 0:21 発言[未読]
【44838】Re:MsgBox関数について akira 06/12/3(日) 10:22 お礼[未読]
【44837】Re:MsgBox関数について akira 06/12/3(日) 10:18 お礼[未読]
【44832】Re:MsgBox関数について Mari 06/12/2(土) 21:56 発言[未読]
【44834】Re:MsgBox関数について akira 06/12/2(土) 22:48 お礼[未読]
【44839】Re:MsgBox関数について Mari 06/12/3(日) 10:25 発言[未読]
【44841】Re:MsgBox関数について neptune 06/12/3(日) 12:14 発言[未読]

【44830】MsgBox関数について
質問  akira  - 06/12/2(土) 21:40 -

引用なし
パスワード
   MsgBox関数でChr(13) Chr(10)を使って改行するとは
どういうことなのでしょうか?
改行するという意味がわかりません
教えて下さい。 よろしくお願いします。

【44831】Re:MsgBox関数について
発言  ponpon  - 06/12/2(土) 21:50 -

引用なし
パスワード
   ▼akira さん:
>MsgBox関数でChr(13) Chr(10)を使って改行するとは
>どういうことなのでしょうか?
>改行するという意味がわかりません
>教えて下さい。 よろしくお願いします。

試してみればどうでしょう?

Sub test()

  MsgBox "こんにちは。" & Chr(10) _
      & "さようなら。"
  MsgBox "こんにちは。" & Chr(13) _
      & "さようなら。"
  MsgBox "こんにちは。 さようなら。"
  
End Sub

【44832】Re:MsgBox関数について
発言  Mari  - 06/12/2(土) 21:56 -

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

ヘルプをご覧ください↓
MsgBox 関数や InputBox 関数などを使ってメッセージを表示するときに、文字列の中にタブや改行を含めることができます。

Chr(9)タブ
Chr(10)ライン フィード文字
Chr(13)キャリッジ リターン

例えばこんなコードを試されるとイメージが得られるでしょう。

MsgBox "明日は" & Chr(10) & "お天気かな?"
MsgBox "明日は" & Chr(10) & Chr(10) & "お天気かな?"

【44833】Re:MsgBox関数について
質問  akira  - 06/12/2(土) 22:29 -

引用なし
パスワード
     ponponさんありがとうございます。MsgBoxのなかで改行するという
  意味だったんですね。でもChr(10)とChr(13)のちがいが、わからなかったのですが
  10と13を入れ替えて試してみたのですが。よろしければ教えて下さい。

>
>Sub test()
>
>  MsgBox "こんにちは。" & Chr(10) & "さようなら。"
>  MsgBox "こんにちは。" & Chr(13) & "さようなら。"
>  MsgBox "こんにちは。 さようなら。"
>  
>End Sub

【44834】Re:MsgBox関数について
お礼  akira  - 06/12/2(土) 22:48 -

引用なし
パスワード
   Mariさんありがとうございます。Chr(10)のときの感じは掴めました。
でもキャリッジリターンという意味がわかりません。コードに13に替えて
みたのですが、ちがいがわかりませんせした。よろしければ教えてください。

【44835】Re:MsgBox関数について
発言  ponpon  - 06/12/2(土) 23:35 -

引用なし
パスワード
   ▼akira さん:
>  ponponさんありがとうございます。MsgBoxのなかで改行するという
>  意味だったんですね。でもChr(10)とChr(13)のちがいが、わからなかったのですが
>  10と13を入れ替えて試してみたのですが。よろしければ教えて下さい。
>
調べてみました。

【キャリッジリターン】carriage return
「復帰」と訳され、改行と同様に解釈されることもあるが、改行キー(EnterキーまたはReturnキー)を押したとき。日本語組版における改行とは違って、行の途中から同じ行の行頭へカーソル(もしくは印字のヘッド部分)を移動することをいう。CRと略す。

日本語組版における改行と同じ結果を得るには、正確にはキャリッジリターンとラインフィード(line feed=次の行へ移動する)との2つの操作が必用。ただしMac OSではCRのみで日本語組版における改行と同様の結果を得る。英文タイプライターのキャリッジ(印字位置を調整したり移動させる胴部)をリターンする(戻す)という動作から来ている。

【44836】Re:MsgBox関数について
発言    - 06/12/3(日) 0:21 -

引用なし
パスワード
   一応、
tp://support.microsoft.com/kb/822372/ja

Sub test()
  Range("A1") = "A" & Chr(10) & "B"
  Range("B1") = "A" & vbLf & "B"
  Range("A2") = "A" & Chr(13) & "B"
  Range("B2") = "A" & vbCr & "B"
  Range("A3") = "A" & Chr(13) & Chr(10) & "B"
  Range("B3") = "A" & vbCrLf & "B"
End Sub

【44837】Re:MsgBox関数について
お礼  akira  - 06/12/3(日) 10:18 -

引用なし
パスワード
   ponponさん おはようございます
わざわざ調べていただいてありがとうございます。
なんとなく意味がつかめてきました。失礼します。

【44838】Re:MsgBox関数について
お礼  akira  - 06/12/3(日) 10:22 -

引用なし
パスワード
   ありがとうございます。比べてみるとかんじがつかめてきました。

【44839】Re:MsgBox関数について
発言  Mari  - 06/12/3(日) 10:25 -

引用なし
パスワード
   ▼akira さん:
>Mariさんありがとうございます。Chr(10)のときの感じは掴めました。
>でもキャリッジリターンという意味がわかりません。コードに13に替えて
>みたのですが、ちがいがわかりませんせした。よろしければ教えてください。

詳しいことは分かりませんが・・・
VBAでは、結果的に同じになりますね。
言語的には、次のようなことのようです。
ラインフィールド(LF)(改行)
キャリッジリターン(CR)(復帰)
ですから、復帰はCRで、昔使われていたタイプライターでいえば、一番左の設定のところまで
戻るということと思います。・・・誰かもっと詳しい人があればご指摘ください。

HPの作成ではこの違いが反映されるようです。
VBAではLFを1個又は複数個使った場合とCRの1個や複数個使った結果は、
それぞれ同じ個数を使った場合、同じ表現結果になるという認識をしていますが

ただし
& Chr(10) & Chr(10) &  と
& Chr(10) & Chr(13) &  とは

結果が異なりますので、ご留意を。
なぜならCRは・・・キャリッジリターン(CR)(復帰:行の先頭に戻る事)の
本来の機能を果たしているからです。 

私の認識はこのようなことです。
更に詳しい内容は、識者のコメントを待ちましょうか・・・。

【44841】Re:MsgBox関数について
発言  neptune  - 06/12/3(日) 12:14 -

引用なし
パスワード
   ▼Mari さん:
こんにちは
識者ではないですが、昔の人です。

>VBAでは、結果的に同じになりますね。
そのようです。

Mari さんの書かれている事は使った事のある昔の人から言っても
あってます。
ちなみにキャリッジとはタイプライタのインクリボンに接している
紙を巻きつけたゴムを引いた円筒部分のことです。

1個の文字を打つと、印字部分が右のほうに1個進む、最後まで行くと
手で、最初に戻すんです。
→・キャリッジリターン(CR)(復帰:行の先頭に戻る事)

VB(A)でも改行はvbcrlfが本来の仕様ですが、Excelのセル、オブジェクト
などはどちらでも良いようです。

本来の意味と、仕様を考えて使用するなら、
msgboxはVB(A)の仕様に従って、vbcrlfを使用するのが正解と思います。

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