[[20120411104627]] 『ツールバーに追加したいボタン R1C1参照形式』(あや) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ツールバーに追加したいボタン R1C1参照形式』(あや)
 XP 2003

[[20110405160117]]に質問させて頂いて、

 無事活用させてもらっている者です。

 今回、新たにツールバーに追加しようとしているボタンがあります。

 ツール-オプション-全般の
 R1C1参照形式を使用するのチェックを付けたり
 外したりを、ツールバーのボタンで再現したいと思っています。

 マクロの記録を取って以下のように追加してみました。
 (もともと使っているVBA起動のボタンも記述にあります)

 Book1.xlaファイル
 //////////////////////////////////////////////////////////////////
 ’Thisworkbookの記述
 Private Sub Workbook_Open()

    On Error Resume Next

    Application.CommandBars("VBAツールバー").Delete

    Dim myBar As CommandBar, myButton As CommandBarButton
    Set myBar = Application.CommandBars.Add(Position:=msoBarTop)

    'VBAを起動
    Set myButton = myBar.Controls.Add(Type:=msoControlButton)

    myBar.Name = "VBAツールバー"
    myButton.OnAction = "VBA起動"
    myButton.Caption = "VBA起動"
    myButton.FaceId = 101

    myBar.Visible = True

    'R1C1
    Set myButton = myBar.Controls.Add(Type:=msoControlButton)

    myButton.OnAction = "R1C1"
    myButton.Caption = "R1C1"
    myButton.FaceId = 97

    On Error GoTo 0

 End Sub

 Private Sub Workbook_BeforeClose(Cancel As Boolean)

    On Error Resume Next

    Application.CommandBars("VBAツールバー").Delete

    On Error GoTo 0

 End Sub
 //////////////////////////////////////////////////////////////////

 ’Module1の記述
 Option Explicit

 Dim R1C1 As String

 Sub VBA起動()

    Application.SendKeys "%({F11})"

 End Sub

 Sub R1C1形式()

 '    On Error Resume Next

    If R1C1 = "" Then

        Application.ReferenceStyle = xlR1C1

        R1C1 = "True"
    Else

        Application.ReferenceStyle = xlA1

        R1C1 = ""

    End If

 End Sub
 //////////////////////////////////////////////////////////////////

 これでボタンを押してみると、
 『マクロ'[Book1.xla]Sheet1!$A$1'が見つかりません。』となります。

 このエラーをネットで検索してみましたが、
 必要な情報が見当たらなかったので
 質問させて頂きました。
 なにかヒントになることでも結構です。よろしくおねがいします。m(_ _)m


 >『マクロ'[Book1.xla]Sheet1!$A$1'が見つかりません。』
 これが良く解らないけど??
 R1C1が見つからないじゃない??

 >   myButton.OnAction = "R1C1"
 >   myButton.Caption = "R1C1"

 名前がダメ。
 そもそも Sub R1C1形式() とも違っているけど、R1C1はだめ。
 しぶとく使いたかったら、
 aaR1C1
 とかに変えること。
 変数名のR1C1の類、C1、C2、R1、R2も使わない方が無難。
 特にC系。

 おまけ、
 VBE起動。
 Application.VBE.MainWindow.Visible = True  
 'ThisWorkbook.VBProject.VBComponents("Module1").Activate
 'Activeworkbook.VBProject.VBComponents("Module1").Activate
 BJ

 BJさん
 ありがとうございます。
 解決しました。

 R1C1は変数にしないほうがいい文字なんですね。
 変数にしないほうがいい文字があることは知っていたのですが
 気がつきませんでした >д<
 気をつけます。勉強になります。

 それと、変数を修正して気がついたのですが

 呼び出す側の
 myButton.OnAction = "R1C1"

 と

 呼び出される側の
 Sub R1C1形式()

 が相違していました。

 ツールバーに追加するのに慣れていないのもあって、
 初歩的なミスですいませんでした…。

(あや)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.