
http://www.officepro.jp/excelvba/dialog/index4.h …
VBAで4種類の改行コードがあります。
しかしながら、以下のコードを実行してみたのですが
4種類とも全く同じダイアログが表示されます。
Sub テスト()
MsgBox "こんにちは" & vbCr & "お元気ですか"
MsgBox "こんにちは" & vbLf & "お元気ですか"
MsgBox "こんにちは" & vbCrLf & "お元気ですか"
MsgBox "こんにちは" & vbNewLine & "お元気ですか"
End Sub
http://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C% …
改行には本来
キャリッジリターンCR
ラインフィードLF
2種類あり、それぞれ、タイプ位置を一番左端に移動させる、タイプ位置を真下に移動させる、
という機能なそうなのですが、
実際には、この4種類ともCR+LFの機能が動作しているようです。
http://oshiete.goo.ne.jp/qa/4004349.html
この質問ページには、OSによっては
CRだけでもCR+LFの動作をするというようなことが書かれてあります。
でもVBAは基本的にWindows上でのみ動作することが前提に置かれていると思います。
それでは、どういう時に
上記の4種類のコードが違って表示されるのでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>このように改行に種類があるのはタイプライターからの名残だと思うのですが
>なぜいまだにこのような種類分けが残っているのでしょうか?
タイプライターというか、ディスプレイが非常に高価で紙に印字する端末の時代ですね。
ディスプレイ端末への過渡期には、両方の端末が使えないといけないので、ディスプレイ端末でもCRが行頭、LFが行送りという機能をそのまま持ちました。
Unix/Linuxの端末機能には、LF、CR、TAB、BS、VT、FFについて端末にコード送出後、次の文字を送るまでに少し時間を待つような機能が盲腸のように備わってますので、テレタイプ型端末(紙送りや印字ヘッド移動に時間が掛かる)でも大丈夫です。他にもテレタイプ型端末のための機能があります。
参考: http://linuxjm.sourceforge.jp/html/GNU_sh-utils/ …
>同じアプリの中でLFやCRを使い分けるようなことがあるのでしょうか?
行区切りという意味では、統一でしょうね。
画面制御という観点では使い分けることはあります。下記参照。
>改行というと下の行の左端から入力をスタートすることを指しますが
>本来の意味である、真下や同じ行の一番左端に移動させるような使い方・使い分けが可能なアプリも>存在するということでしょうか?
例えば、Cで、
for(i=0; i<100; i++){
printf("%d\r", i);
sleep(1);
}
printf("\n");
というプログラムを実行すると、行頭に戻って数字が上書きされて表示されます。
進行状況を表すためによく使われます。
No.1
- 回答日時:
OSというよりアプリですね。
WindowsではおおむねCRLF、Unix/LinuxではおおむねLF。
Windows標準のメモ帳では、CRLFだけを改行として扱うので、LFのみやCRのみで区切られたテキストファイルは長い1行として扱われて表示されます。
VBAのMsgboxがそれらを区別していないと言うことです。
同じOSでもソフトによって取り扱いが異なり得ます。
例えば、Excelでセル内改行はALT+Enterで出来ますが、文字コードを調べると10(LF)になってます。
コマンドプロンプトで、typeコマンドでファイル内容を表示すると、CRLFとLFは同じ。CRは行がつながって表示されます。
CなどのUnix由来の言語ではWindows上で動く場合も、プログラム上では改行はUnixと同じくLFだと思って書けばWindows上で動く場合は自動的にCRLFと相互変換してくれるという機能もあります(テキストモードとバイナリモード)。
>でもVBAは基本的にWindows上でのみ動作することが前提に置かれていると思います。
Mac用Officeもあるので、VBAはMacでも動きますよ。
>上記の4種類のコードが違って表示されるのでしょうか?
WindowsではvbNewLineはvbCrLfと全く同じ値です。
つまり改行は3種類しか無いです。
ありがとうございます。
このように改行に種類があるのはタイプライターからの名残だと思うのですが
なぜいまだにこのような種類分けが残っているのでしょうか?
同じアプリの中でLFやCRを使い分けるようなことがあるのでしょうか?
改行というと下の行の左端から入力をスタートすることを指しますが
本来の意味である、真下や同じ行の一番左端に移動させるような使い方・使い分けが可能なアプリも存在するということでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) [スライサー]に関して、 1 2022/05/24 21:07
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- 格安スマホ・SIMフリースマホ SIMフリースマホ(Android限定)米国で通話ができる実売3万円台の電池が持つ端末はないですか? 6 2022/11/12 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- その他(パソコン・スマホ・電化製品) 古くなった超音波洗浄機における超音波トランスデューサーの交換 2 2022/11/12 11:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
C# DataGridViewのセルを改行禁...
-
C++でのCRLFについて
-
vb.netでのリッチテキストボッ...
-
texのchapterが改行される
-
C# 文字列を改行コードで分割
-
jsp 改行コードで改行させて表...
-
変数の中の改行コードをBRタグ...
-
改行について
-
JavaDoc コメントの改行について
-
PDFlibでのPDF生成について
-
xmlファイル(UTF-8)への書き...
-
COBOLの改行
-
ファイルの内容をstrcpyを使っ...
-
改行を読み飛ばす
-
テキストボックスに改行を含む...
-
グレープシティのSPREAD...
-
C++Builderでの文字化け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
VBAでCSVをExcelに取り込む時に...
-
改行について
-
改行を読み飛ばす
-
テキストボックス行の桁数を制...
-
C# DataGridViewのセルを改行禁...
-
LaTeX: captionの中で改行した...
-
JAVA System.out.println の ...
-
エクセルVBA 文字列領域が不足...
-
最終行の改行について
-
グレープシティのSPREAD...
-
【VBA】エクセルで最後の不要な...
-
jsp 改行コードで改行させて表...
-
ラベル(スタティックテキスト)...
-
1行ごとに取得して、その改行...
-
ファイルから読み取った改行文...
-
JavaDoc コメントの改行について
おすすめ情報