• ベストアンサー

(Excel 2003) マクロでワークシート上のラベルをコントロールしたいのですか・・・

こんにちは。 Excel 2003 で思い通りのグラフが作成できなくて、ならば自分で作ろうと無謀にも思い立ち、 マクロでラベルをワークシートに貼り付けてみました。 (とりあえずの目標) ・目的の位置に目的の大きさで貼り付ける。 ・標題を消去する。(あるいは、特定の文字を設定。) ・境界線を設定する。 ・背景色を設定する。 しかし、思った通りに動作してくれません。下記はそのテスト用のコードです。 Sub Test1() With Sheets("テスト").OLEObjects.Add(ClassType:="Forms.Label.1", _ Left:=54, Top:=13.5, Width:=54, Height:=13.5) '.Caption = "" 実行時エラー '.BorderStyle = fmBorderStyleSingle 実行時エラー '.BackColor = RGB(192, 192, 192) 実行時エラー .Border.Color = vbBlack 'OK .Interior.Color = RGB(192, 192, 192) 'NG(実行時エラーはないが効果無し) End With End Sub (質問1) プロパティウインドウでは指定可能なのに、VBAでプロパティを利用できないのは何故ですか? Caption, BorderStyle, BackColor など 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」 (質問2) 標題を消去する(または、特定の文字を指定する)にはどうしたらよいですか? また、背景色を設定するにはどうしたらよいですか? 初歩的なことと思いますが、よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 >(質問1)VBAでプロパティを利用できないのは何故ですか? プロパティが、上位と下位のものが混じっているからですね。以下のようにすれば通るはずです。 Sub LabellingTest1()  With Sheets("テスト").OLEObjects.Add(ClassType:="Forms.Label.1", _    Left:=54, Top:=13.5, Width:=54, Height:=13.5)    .Object.Caption = ""    .Object.BorderStyle = fmBorderStyleSingle    .Object.BackColor = RGB(192, 192, 192)    .Border.Color = vbBlack    .Interior.Color = RGB(192, 192, 192)   End With End Sub 今、試してみましたが、これをすると、ワークシートからプロパティの変更できなくなるようです。もちろん、オブジェクトとして、何も変りはないようですが。 >(質問2)標題を消去する 標題とは、英語で、Caption ですが、ラベルのCaption のことですか? Sheets("テスト").OLEObjects(1).Object.Caption = "" 背景色を設定する これは、同じことですからお分りになるかと思います。 シート上のコントロールツールが多数ある場合は、 「特定の文字を指定する」ということは、私は、For Each ~ In でループで探していくしかないのではないかと思います。

GreatDragon
質問者

お礼

早速の回答ありがとうございます。 .Object が無かったのが原因です。 ユーザーフォームと同じように考えたらダメなんですね。 お世話になりました。 ※実は投稿直後に自己解決していまして、「運営スタッフ」に削除依頼をしてしまいました。  もしこの投稿が削除されましたら申し訳ありません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

回答になるかわかりませんが・・・・ 指定のOLEObjectsはエクセルと相性が悪いのではないでしょうか エクセルのフォーム機能を使ったラベルでは以下の記述になります Worksheets("テスト").Labels.Add(54, 13.5, 54, 13.5).Select Selection.Characters.Text = "" ただ、このラベルは境界線や背景色を指定できません 必要であれば、フォームのラベルではなく、オートシェイプの方がよいかと思います ただ、上記の内容はあくまで私が調べた結果ですので他に良い方法があるかもしれません。

GreatDragon
質問者

お礼

ご回答ありがとうございます。 そのような指定方法もあるのですね。 参考になりました。 ※実は投稿直後に自己解決していまして、「運営スタッフ」に削除依頼をしてしまいました。  もしこの投稿が削除されましたら申し訳ありません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • アクセスのラベルの背景色が設定できない

    アクセス2010なのですが Sub test() Dim FormName As String FormName = "F明細" Forms(FormName).Label_取引日.BackColor = RGB(255, 100, 255) End Sub を実行しても、背景色:色なし のままなのですが、どうやったら設定できるのでしょうか? ForeColorの設定はvbaで可能でした。よろしくお願いします。

  • マクロでフォーム処理の繰り返し

    よろしくお願いします。 マクロでフォームを作成したとき同じような処理がたくさんある時、繰り返し処理は可能でしょうか? 例えば以下のような処理をループ処理できないでしょうか? Private Sub Label1_Click() Label1.BackColor = RGB(255, 0, 0) End Sub Private Sub Label2_Click() Label2.BackColor = RGB(255, 0, 0) End Sub Private Sub Label3_Click() Label3.BackColor = RGB(255, 0, 0) End Sub   ・   ・   ・ Private Sub Label100_Click() Label100.BackColor = RGB(255, 0, 0) End Sub

  • 「Microsoft Excel - 」を表示させ

    「Microsoft Excel - 」を表示させない方法はありますか? Sub t1() ActiveWindow.Caption = "test" End Sub をすると、 「Microsoft Excel - test」になってしまいます。 タスクバーには「test」だけを表示させたいのですが、 「Microsoft Excel - 」があるせいで、testまで表示されません。 Sub t2() Debug.Print ActiveWindow.Caption End Sub を実行しても、testしか取得されないから、 「Microsoft Excel - 」を消すことは無理なのでしょうか?

  • エクセルシート上のActiveXコントロール

    Excel2007のシートへActiveXコントロールの「オプションボタン」を置いて 使用しようとしています。 コントロールが目立つようにセルを塗りつぶして色をつけています。 プロパティのBackStyleを「0 - fmBackStyleTransparent」とすると 配置したときはセルの色で透けているのですが、 クリックするとBackColorの色がついてしまいます。 BackColorの選択肢もエクセルのカラーになかなか一致しません。 Captionの文字の背景がセルの色と同じになってくれればよいので 方法は問いません。 よろしくお願いします。 当方のOSはVISTAですが、XPのExcel2003と共用する予定のものです。

  • EXCEL VBAのユーザーフォームの配色について

    EXCEL VBAのユーザーフォームの配色の変更について教えていただきたいことがあります。 ユーザーフォームを設置しているのですが、プロパティで設定されている「システム」及び「パレット」の各色をVBAコードで表示することは出来るのでしょうか。 プロパティでUserForm1のBackColorを「強調表示」に設定 TextBox1の値を変えたときにTextBox1のBackColorを「強調表示」に変更する。 Private Sub TextBox1_Change() TextBox1.BackColor = RGB(255, 255, 150) End Sub でやろうとしていますが、全く同じ色を作ることができません。 システムやパレットの色をRGB以外のやり方で設定することはできるのでしょうか。 よろしくお願いいたします。

  • Excelシート上のボタンでセルの背景色を設定する

    シート上のボタンを押したときにセルの値と背景色を設定したいのですが、エラーになります。 原因・解決策が分かる方お願いいたします。 Private Sub CommandButton1_Click() With Range("A1") .Value = "Yellow" .Interior.ColorIndex = 6 '実行時エラー1004:InteriorクラスのColorIndexプロパティを設定できません。 End With End Sub 環境 Excel97/Win98

  • Excel2003で作成したマクロが2000で不具合が生じました。

    Excel2003で作ったマクロを2000で実行したところこの命令でエラーになってしまいました。恐らく参照設定の問題だと思いますが、どの参照が問題なのでしょうか?   If Environ("COMPUTERNAME") = "Z7890580" Then     Exit Sub   End If このVBAのブックの特定のシートで右クリックでオプション選択できるようになっていましたが、上記エラーが生じた後、そのPCでエクセルを実行すると、このブックを閉じても常に右クリックするとオプションが表示されるようになってしまいました。 どのようにすれば出ないようになるのでしょうか? よろしくお願い申し上げます。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)   Application.CommandBars("Cell").Reset   With Application.CommandBars("Cell").Controls.Add     .BeginGroup = True     .Caption = "ReadOnlyで開く"     .FaceId = 59     .OnAction = "Selection_File_Open"   End With End Sub

  • 点滅するコードに改変(エクセル2010)

    下記のコードで赤色の部分を点滅にするにはどのようなコードになりますでしょうか? お手数かけますが、ご教授くださいませ。 Private Sub TextBox2_Change() Select Case Me.TextBox2 Case "あああ", "いいい", "ううう" Me.CommandButton56.BackColor = RGB(255, 0, 0) Me.CommandButton48.BackColor = RGB(240, 240, 240) Me.CommandButton49.BackColor = RGB(240, 240, 240) Me.CommandButton62.BackColor = RGB(240, 240, 240) Case "えええ", "おおお" Me.CommandButton56.BackColor = RGB(240, 240, 240) Me.CommandButton48.BackColor = RGB(250, 0, 0) Me.CommandButton49.BackColor = RGB(250, 0, 0) Me.CommandButton62.BackColor = RGB(250, 0, 0) Case Else Me.CommandButton56.BackColor = RGB(240, 240, 240) Me.CommandButton48.BackColor = RGB(240, 240, 240) Me.CommandButton49.BackColor = RGB(240, 240, 240) Me.CommandButton62.BackColor = RGB(240, 240, 240) End Select End Sub

  • MSChartコントロールのフォント設定

    VB6のMSChartコントロールで、 Private Sub Form_Load() MSChart1.Title.Font.Size = 20 End Sub とし、フォントサイズを設定しようとしたところ、実行時に 「値の設定のみ可能なプロパティです。」 というエラーが発生してしまします。 フォントサイズだけでなく、フォントの名前、さらにFootnoteでも同様なエラーが発生します。 何が原因でしょうか?よろしくお願いします。

  • 同じコマンドボタンからマウスカーソルがはなれたら

    フォーム上のコマンドボタンにマウスカーソルが触れたら色を付ける、 同じコマンドボタンからマウスカーソルがはなれたら 、また色を変える、 という動きをvbaで行いたいのですが、 Private Sub cmd_test_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Me.cmd_test.BackColor = RGB(255, 180, 200) End Sub で、マウスカーソルが触れたら色を付けることはできたのですが、 マウスカーソルがそのコマンドボタンから離れたら色を変えるという動きができません。 Private Sub cmd_test_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Me.cmd_test.BackColor = RGB(255, 255, 255) End Sub Private Sub cmd_test_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Me.cmd_test.BackColor = RGB(255, 255, 255) End Sub Private Sub cmd_test_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Me.cmd_test.BackColor = RGB(255, 255, 255) End Sub をしても、マウスカーソルが離れても色が白になりませんでした。

専門家に質問してみよう