【1分で解決!】ExcelVBAのMsgBox内で改行する方法
VBAのMsgBoxで改行させたい時ってありませんか?かなり複雑そうに見えますが、ちょっとしたコツをつかめばできるようになりますよ。
今回は、VBAのMsgBoxで改行する方法と、改行されない場合の解決策を解説します。
では、さっそく始めてみましょう!
LINEでExcelを気軽に学べる
□2016年
海外拠点において、Excelでの業務改善による納期遵守率50%→100%達成。
□2018年
自動化を促進させ、自身の残業時間を年間240時間削減成功。
□2023年
├ブログとTwitter開始
├Excel無料相談会→即日満席
└ChatGPT×Googleスプレットシート配布で1週間で35万インプ達成
仕事ができなくて毎日上司に叱責されていた私がExcelを学んだら評価され残業を大幅に削減!現在は職場改善チームに所属し、PythonやRPAなどのツールで会社全体の改善をしています。仕事の依頼はTwitterのDMまで!
はじめに
VBAのMsgBoxで改行するのは意外と大変です。
しかし、適切なコードとテクニックを使えばVBAのMsgBoxで簡単に改行することができます。
>>ExcelVBAについて詳しい解説をしている記事はこちら
この記事では、VBAのMsgBoxで改行する際に起こりうる一般的な問題とその対処法について詳しく説明します。
VBAのMsgBoxで改行する方法
VBAのMsgBoxで改行するには、VBAの関数呼び出し「chr(10)」を使用します。これにより、Msgboxのコードに改行文字が挿入され、VBAのMsgBoxで改行できるようになります。
例えば、以下のようなコードを入力した場合
MsgBox "これは私の最初の行です" & chr(10) & "これは私の2番目の行です"
VBAのMsgBoxに以下のように表示されます。
これは私の最初の行です
これは私の2行目です
また、文字列の配列を作成することで、VBAのMsgBoxに簡単に複数行を作成することができます。
例えば、以下のようなコードを入力します。
Dim myArray As String
myArray = Array("これは1行目です。", "これは2行目です。", "これは3行目です。")
MsgBox Join(myArray, vbNewLine)
VBAのMsgBoxに以下のように表示されます。
これは1行目です。
これは2行目です。
これは3行目です。
VBAのMsgBoxで改行するには、どのようなコードを使用すればよいか
VBAのMsgBoxで改行をするコードとして最もよく使われるのは、VBA関数呼び出しの「Chr(10)」です。
これは比較的簡単なコードで、VBAのMsgBoxに実装するのは簡単です。
しかし、VBAのMsgBoxで改行させる方法は他にもあります。
もう一つの方法は、文字列の配列を使用する方法です。
これはVBAのMsgBoxで一度に複数の行を作成する必要がある場合に便利です。
そして最後にVBAの改行コードであるVbCrLfやVbCrを使用する方法もあります。
VBAで改行されない原因と解決方法について
VBAのMsgBoxで改行しようとすると、コードが正しいのに改行が表示されないことがあります。
これは、使用した改行文字が使用しているVBAのMsgBoxでサポートされていない可能性があるためです。
この場合は「VbCrLf」や「VbCr」などの代替コードを使用することができます。
「VbCrLf」や「VbCr」の説明
Excel VBAでは、改行を表すために、VbCrLfやVbCrといった特殊なコードを使用することができます。
VbCrLf | 改行(CR)と改ページ(LF)を同時に表すもので、新しい行に移動して改ページを行うもの |
VbCr | 改行(CR)を表すもので、新しい行に移動するだけものもの |
使い方は、以下を参考ください。
'VbCrLfを使用する場合
Dim str As String
str = "これは" & VbCrLf & "改行される文字列です。"
'VbCrを使用する場合
Dim str As String
str = "これは" & VbCr & "改行される文字列です。"
上記の例では、strには、”これは”と改行、”改行される文字列です。”という文字列が置換されます。
また、文字列を変更するだけでなく、セルに値を入力する場合も、VbCrLfやVbCrを使用することで、セル内に複数行の文字列を入力することができます。
VbCrLfの使い方
Sub Example()
Dim str As String
str = "Hello" & VbCrLf & "World"
MsgBox str
End Sub
この例では、文字列 “Hello” と “World” の間に VbCrLf を挿入して、改行を表します。これを実行すると、次のようにメッセージ ボックスが表示されます。
Hello
World
VbCrの使い方
Sub Example()
Dim str As String
str = "Hello" & VbCr & "World"
MsgBox str
End Sub
この例では、文字列 “Hello” と “World” の間に VbCr を挿入して、オフセット リターンを表します。これを実行すると、次のようにメッセージ ボックスが表示されます。
Hello^MWorld
VbCrLf は、改行を表す文字列であり、VbCr はサスペンション リターンを表す文字列です。文字列を使用すると、コードが Windows システムでのみ正しく動作することになります。ほかのプラットフォームでは、これらの文字列を使用しても正しく動作しない可能性があります。
まとめ
'セルA1にVbCrLfを使用して複数行の文字列を入力する場合
Range("A1").Value = "これは" & VbCrLf & "複数行の文字列です。"
'セルA1にVbCrを使用して複数行の文字列を入力する場合
Range("A1").Value = "これは" & VbCr & "複数行の文字列です。"
セルA1に、”これは”と改行、”複数行の文字列です。”という複数行の文字列が入力されます。
Msgbox内で改行を覚えて是非見た目を整えてくださいね。
しんたろ。ブログでは「少しでも残業を減らしたい」「時間効率を上げて新しいことにチャレンジしたい」「仕事で評価を上げて年収を上げたい」そんなあなたに向けて私が学んできたノウハウを最短ルートで教えるExcelブログとなっています。
覚えておくべき関数や操作方法を徹底解説!
習得する方法を解説
「独学で習得できる気がしない」そんな方に効率よく習得できる記事を書きました。
本や動画を紹介していますが、やはり一番効率の良い習得方法は、講師にわからないことを質問できる『オンラインスクール』です。
会社員でも不就労所得を作れる。
「会社の収入だけでは不安」そう思い出会った副業がブログでした。書いた記事たちが、あなたが寝ている間もずっと働いてくれます。『不就労』の完成です。
記事を書く際の様々な分析にExcelがとても役立ちます。私は2023年末までにブログで脱サラする予定です!
あなたもブログで脱サラしましょう!