- ベストアンサー
VBAプログラミング 改行について
教えてください。 下記のような改行をさせる関数を作成しました。 そのこの関数を読み込みさせ、データをあるセルに貼り付けるように指示したのですが、うまくいきません。デバックをすると、値は取得できているのですが、セルの貼り付けがおもうようにいきません。 セルが結合セルだからだめなのでしょうか?? 値は#VALUEになります お知恵をお借りできませんか? エクセルには下記のように記入しています。 =kaigyou("ああああ\nあああああああ") **************************************************** Function kaigyou(a) Dim b As String 'Excelのファイル名を変更の場合は↓これも変更して! Const file_name = "test.xls" 'シート名を変更の場合は↓これも変更して! Const print_sheet = "Sheet1" '特典内容の改行 b = Replace(a, "#n", vbCrLf) Workbooks(file_name).Worksheets(print_sheet).Cells(4, 25).Value = b End Function **********************************
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
(1)\nと、#n のスペルミスを修正すること。 (2)ただしいFunctionの書き方にすること。 Function名に、returnする。(これはNo1の回答者さんが 言っていることでもある) 無駄も省けば、 Function kaigyou(a) As String kaigyou = Replace(a, "\n", vbCrLf) End Function のたった3行を標準モジュールに貼り付けて保存すれば足りる。 (3)セルの書式を「折り返して全体を表示する」にすること。
その他の回答 (3)
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは、#2です。 "・"は「Cr」ではないでしょうか。「Lf」だけにすれば消えませんか? (前回のリンク先にもあるように、Excelのセル内改行はCrLfではなく、Lfです。) では。
お礼
お手数おかけしてすみません。 ありがとうございます。 できました!!
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 Excelと改行についてマクロのサンプルが載っているサイトがありましたので、ご参照下さい。 http://officetanaka.net/excel/vba/tips/tips89.htm では。
お礼
こんにちは。 お礼が遅くなって申し訳ないです。 サンプルありがとうございます。 ただ、少しうまくいきませんでした。
- hana-hana3
- ベストアンサー率31% (4940/15541)
ワークシート関数(自作関数)として利用する場合は制限があります。 他のセルの参照や変更、関数が受取った値の変更の変更は許可されません。
お礼
そうなんですね。。 制限があるのですね。 早々と回答いただき、ありがとうございます。
お礼
できました!!ありがとうございます。 ただ、改行はできたのですが、なぜか”・”が表示されてしまいます。