※ ChatGPTを利用し、要約された質問です(原文:VBA 変数に格納できる文字数に制限が?)
エクセルVBAでメール本文を作成する方法の制限について
2012/07/02 19:53
このQ&Aのポイント
エクセルVBAでメール本文を作成し、ハイパーリンクをセットする方法について考えています。
現在のコードでは、変数に格納できる文字数の制限により、長い関数が途中で切れてしまう問題が発生しています。
さらに、作成したハイパーリンクをクリックすると正しいメール本文が立ち上がるようにすることも目指しています。
いつもお世話になります。
excel VBAで、エクセルの行を本文としたメールを作成するマクロを作りたいと考えています。
直接メーラーにデータを渡すプログラムは難しく、またサンダーバードなので対応しているか
分からないため、エクセル関数のハイパーリンクを使ってクリックでメーラーが立ち上がり
本文が入力されている...というものを作っています。
現在のコードは以下です。
’範囲内のセル本文を改行つきで「linktext」へ格納する
linktext = ""
Do Until Sheets("sheet2").Range("B" & cnt).Value = "adress"
linktext = linktext & "A" & cnt
linktext = linktext & "&"
linktext = linktext & """%0a"""
linktext = linktext & ","
cnt = cnt + 1
Loop
'ハイパーリンクとしてセルへセット
finaltext = "=HYPERLINK("""
finaltext = finaltext & "mailto:"""
finaltext = finaltext & "&"""
finaltext = finaltext & meruado
finaltext = finaltext & """&"
finaltext = finaltext & """?subject="""
finaltext = finaltext & "&"""
finaltext = finaltext & kenmei
finaltext = finaltext & """&"
finaltext = finaltext & """&body=""" & "&CONCATENATE(A12),"
finaltext = finaltext & linktext
finaltext = finaltext & "),"
finaltext = finaltext & """"
finaltext = finaltext & meruado
finaltext = finaltext & """" & ")"
Sheets("sheet2").Range("A1").Formula = finaltext
見よう見まねで作ったので、分割されていてすみません。
上記マクロを走らせ、できた関数は以下のようになります。
=HYPERLINK("mailto:"&"○○@hotmail.com"&"?subject="&""&"&body="&CONCATENATE(A10&"%0a",A11&"%0a",A12&"%0a",A13&"%0a",A14&"%0a"・・・以下続いていく)
で、ここで問題が。
上記の関数が非常に長くなった場合、変数「linktext」「finaltext」への格納が途中で切れてしまうようなのです。
具体的には、おしりが「A35」になるあたりで止まっており、lenで調べると、609で止まっているようです。
もっと多くの文字数を一つの変数に格納することはできますでしょうか?
また、さらにそれを使ってエクセルのセルにハイパーリンクをセットし、クリックして正しいメール本文が
立ち上がるようにすることはできるのでしょうか?
質問の原文を閉じる
質問の原文を表示する
お礼
ハイパーリンクの制限に引っかかりました... 別の方法を探しますが、教えていただいた事はそちらにも活かせそうです! ありがとうございました。