• ベストアンサー

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 **********************************

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

(1)\nと、#n のスペルミスを修正すること。 (2)ただしいFunctionの書き方にすること。   Function名に、returnする。(これはNo1の回答者さんが   言っていることでもある)    無駄も省けば、  Function kaigyou(a) As String   kaigyou = Replace(a, "\n", vbCrLf)  End Function  のたった3行を標準モジュールに貼り付けて保存すれば足りる。 (3)セルの書式を「折り返して全体を表示する」にすること。

aiurai54
質問者

お礼

できました!!ありがとうございます。 ただ、改行はできたのですが、なぜか”・”が表示されてしまいます。

その他の回答 (3)

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.4

こんにちは、#2です。  "・"は「Cr」ではないでしょうか。「Lf」だけにすれば消えませんか?  (前回のリンク先にもあるように、Excelのセル内改行はCrLfではなく、Lfです。) では。

aiurai54
質問者

お礼

お手数おかけしてすみません。 ありがとうございます。 できました!!

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  Excelと改行についてマクロのサンプルが載っているサイトがありましたので、ご参照下さい。  http://officetanaka.net/excel/vba/tips/tips89.htm では。

aiurai54
質問者

お礼

こんにちは。 お礼が遅くなって申し訳ないです。 サンプルありがとうございます。 ただ、少しうまくいきませんでした。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ワークシート関数(自作関数)として利用する場合は制限があります。 他のセルの参照や変更、関数が受取った値の変更の変更は許可されません。

aiurai54
質問者

お礼

そうなんですね。。 制限があるのですね。 早々と回答いただき、ありがとうございます。

関連するQ&A