|
▼awu さん、皆さん、おはようございます。
>
>>
>それで、当初のコードでコメント文が、何も表示されないのは、
>
> .TextFrame.Characters.Text = の記述で Characters メソッドを使用したことと、
>呪い文?のような長いコメント文が起因しているからではないかと思います。
>
>Charactersの引数である Start と Length を省略していますので、指定した文字列全体が
>対象になりそうですが、提示したコメント文は、255文字を超えていますので、全て無視され
>何も表示されない状態になったようです。(テスト結果の推測です。)
TextFrameオブジェクトを使用して以下のコードを実行してみてください。
'=================================================================
Sub test()
With ActiveCell
.ClearComments
With .AddComment
With .Shape
.Width = 200
.Height = 3000
For idx = 1 To 26
For jdx = 1 To 20
.TextFrame.Characters(420 * (idx - 1) + 21 * (jdx - 1) + 1, 21).Text = String(20, Chr(64 + idx)) & vbLf
Next
Next
End With
End With
End With
End Sub
つまりCharactersに引数を指定して、少しずつ指定する方法です。
但し、これでも行数には限界あるようですね!!
これは
'===============================================================
Sub test2()
Dim txt As String
With ActiveCell
.ClearComments
With .AddComment
With .Shape
.Width = 200
.Height = 3000
End With
For idx = 1 To 26
For jdx = 1 To 20
txt = txt & String(20, Chr(64 + idx)) & vbLf
Next
Next
.Text Text:=txt
End With
End With
End Sub
のCommentオブジェクトのTextプロパティを使用しても同じです。
もっとも、オ−トシェイプではなく、コメントならば、
testよりもtest2の方法が何かと簡単そうですけどね!!
尚、TextFrameに関しては、Jakaさんの目安箱でも
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=63;id=FAQ
で検証されています。
|
|