VB6からExcelへワークアートの挿入をするには?

解決


さくら  2007-10-12 02:31:39  No: 137774

VB6からの操作でExcel上へワードアートで例えば”(仮)テスト”のみたいな
文字を表示したいのですが・・・上手くいきません。

「Excelを開く」「シートの指定」「セルへの書込み」は出来きるのですが
「ワードアート」の作成ができません。

知っている方がいらっしゃいましたらお教え下さい。


魔界の仮面弁士  2007-10-12 06:11:59  No: 137775

こんな感じでどうでしょう。

Set objShape = objSheet1.Shapes.AddTextEffect(msoTextEffect28, "(仮)テスト", "MS ゴシック",  24, msoFalse, msoFalse, 0, 0)


さくら  2007-10-12 06:37:47  No: 137776

魔界の仮面弁士様早速の返信ありがとう御座います。

まず、結果から申しますと出来ませんせした。。。

また、自分なりにも意地ってみましたので見て頂けないでしょうか?
================================
    Dim xlApp       As Excel.Application
    Dim xlBook      As Excel.Workbook
    Dim xlSheet     As Excel.Worksheet
    Dim objShape    As Shape
    Set xlApp = CreateObject("Excel.Application")

    ブック名シート名指定

    Set objShape = xlSheet.Shapes.AddTextEffec(xlApp.msoTextEffect28, "(仮)テスト", "MS ゴシック", 24, xlApp.msoFalse, xlApp.msoFalse, 0, 0)

================================


魔界の仮面弁士  2007-10-12 07:45:43  No: 137777

> Dim objShape As Shape
間違いではありませんが、型が曖昧になります。
『As Excel.Shape』の構文を使われることをお奨めします。

上記の記述ですと、参照設定の「優先順位」設定によって、
  Dim objShape As Office.Shape   'Office Object Library
  Dim objShape As Excel.Shape    'Excel Object Library
のいずれの意味であるのかが揺れてしまいますので。

> Set objShape = xlSheet.Shapes.AddTextEffec(xlApp.msoTextEffect28, "(仮)テスト", "MS ゴシック", 24, xlApp.msoFalse, xlApp.msoFalse, 0, 0)

(問題点1) AddTextEffec メソッドではなく、AddTextEffect メソッドです。

(問題点2) msoTextEffect28 は、Excel.Application オブジェクトの
  プロパティではなく、Office ライブラリ内の定数(=27)です。
  (Office.MsoPresetTextEffect 列挙型)

(問題点3) msoFalse は、Excel.Application オブジェクトの
  プロパティではなく、Office ライブラリ内の定数(=0)です。
  (Office.MsoTriState 列挙型)

'-----------------
Option Explicit

Private Sub Command1_Click()
    Dim xlApp    As Excel.Application
    Dim xlBook   As Excel.Workbook
    Dim xlSheet  As Excel.Worksheet
    Dim objShape As Excel.Shape
    
    Set xlApp = New Excel.Application
    xlApp.Visible = True
    Debug.Print xlApp.Version   '12.0
    
    Set xlBook = xlApp.Workbooks.Add()
    Set xlSheet = xlBook.Worksheets(1)

    Set objShape = xlSheet.Shapes.AddTextEffect(msoTextEffect28, "(仮)テスト", "MS ゴシック", 24, msoFalse, msoFalse, 0, 0)
End Sub


さくら  2007-10-12 18:38:11  No: 137778

魔界の仮面弁士様またまた早速の返信ありがとう御座います。
また、返信(私の)が遅くなりました事お詫び申し上げます。

まず、結果から申しますと出来ました。

『As Excel.Shape』の構文追加及び
参照設定で「Office ライブラリ」を追加致しました所上手くいきました。

>(問題点2) msoTextEffect28 は、Excel.Application オブジェクト
 ↑↑↑ズバリでした・・・

また、書き込みすると思いますが・・・
その際は、また宜しくお願い致します。

魔界の仮面弁士様ありがとう御座いました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加