tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルエクセル上のバーコードオブジェクトの操作について
記事No15538
投稿日: 2012/07/20(Fri) 17:34
投稿者ガオ
お世話になります。以前、エクセルへのバーコードオブジェクトの貼り付けについてお世話になりました。

今度はすでに張り付いているバーコードオブジェクトを検索し、データを変更したいのですが、オブジェクトの検索から設定の部分で悩んでいます。

以下のようにしてバーコードは見つけることができました。

    Dim myShape As Excel.Shape
    For Each myShape In ExcelObject.Sheets(1).Shapes
        If myShape.Name = "BarCodeCtrl1" Then
            Exit For
        End If
    Next

しかし、属性の設定で躓いてしまいます。

    'バーコードスタイル(Code128)
    myShape.OLEFormat.object.Style = 7

オブジェクトはプロパティをサポートしていない等のエラー内容です。
属性を設定するため、myShapeをキャストするなり?なにか必要なのかと思いますが、いいサンプルを見つけることができません。

どのような記述方法に変更すればよろしいでしょうか。

よろしくお願いします。

[ツリー表示へ]
タイトルRe: エクセル上のバーコードオブジェクトの操作について
記事No15539
投稿日: 2012/07/20(Fri) 17:35
投稿者ガオ
環境を書き忘れました。
VB6 SP6
vb6の参照設定に「MicrosoftExcel11.0 Object Library」を追加、
コンポーネントに「microsoft Access Barcode Control9.0」を追加
しています。
OSはWindowsXPです。

よろしくお願いします。

[ツリー表示へ]
タイトルRe^2: エクセル上のバーコードオブジェクトの操作について
記事No15540
投稿日: 2012/07/20(Fri) 18:35
投稿者魔界の仮面弁士
> vb6の参照設定に「MicrosoftExcel11.0 Object Library」を追加、
> コンポーネントに「microsoft Access Barcode Control9.0」を追加

Microsoft Access Barcode Control 9.0 は、VB6 や 単体の Excel には含まれていません。
ご自身の PC 以外でも使う可能性がある場合は、
 「msbcode9.ocx を再頒布可能なライセンスを所有している」
または
 「利用者のPCに、すでに Barcode Control が導入されている」
のいずれかの条件を満たす必要がありますのでご注意を。


> myShape.OLEFormat.object.Style = 7
> オブジェクトはプロパティをサポートしていない等のエラー内容です。
TypeName(myShape.OLEFormat.object) は、"OLEObject" を返しますよね。

Style プロパティを提供しているのは、BarCodeCtrl であって、OLEObject ではありません。
実行時エラーになるのはそのためです。

Excel 側で提供されているプロパティ(Left, Name 等)を利用する場合は、
  myShape.OLEFormat.object.何某
で良いのですが、ActiveX コントロール側で提供されるプロパティを利用する場合は
「Object プロパティ」を経由する必要があります。すなわち、
  myShape.OLEFormat.object.Object.Style = 7
のような記述となります。

[ツリー表示へ]
タイトルRe^3: エクセル上のバーコードオブジェクトの操作について
記事No15541
投稿日: 2012/07/20(Fri) 21:04
投稿者ガオ
魔界の仮面弁士 様
お世話になります。

教えていただいた内容で無事設定できました。

展開先の端末にはACCESSが導入済みなので、ライセンスは問題ありません。

どうもありがとうございました。

[ツリー表示へ]