アプリ版:「スタンプのみでお礼する」機能のリリースについて

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件)

>このように改行に種類があるのはタイプライターからの名残だと思うのですが


>なぜいまだにこのような種類分けが残っているのでしょうか?

タイプライターというか、ディスプレイが非常に高価で紙に印字する端末の時代ですね。
ディスプレイ端末への過渡期には、両方の端末が使えないといけないので、ディスプレイ端末でも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");
というプログラムを実行すると、行頭に戻って数字が上書きされて表示されます。
進行状況を表すためによく使われます。
    • good
    • 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種類しか無いです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

このように改行に種類があるのはタイプライターからの名残だと思うのですが
なぜいまだにこのような種類分けが残っているのでしょうか?

同じアプリの中でLFやCRを使い分けるようなことがあるのでしょうか?

改行というと下の行の左端から入力をスタートすることを指しますが
本来の意味である、真下や同じ行の一番左端に移動させるような使い方・使い分けが可能なアプリも存在するということでしょうか?

お礼日時:2015/02/28 21:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!