• ベストアンサー

Workbook_openでマクロが実行されない

ExcelのVBAで起動時にマクロを実行させたいのですが、 「メソッドまたはデータメンバが見つかりません。」 とのエラーが出て実行出来なくて困っています。 プログラム内容は *ThisWorkbook* Private Sub Workbook_Open() Module1.tasu End Sub *標準モジュール(Module1)* Private Sub tasu() Dim a As Byte a = 3 Range("a1") = a End Sub 使用しているソフトはExcell2003、VB6.5です。 よろしくお願いします。

  • i00323
  • お礼率70% (188/265)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

下記をやってみてください。うまくいくと思います。 Sub tasu() Dim a As Byte a = 3 Range("a1") = a End Sub -- Sub Workbook_Open() Module1.tasu End Sub -- Private Sub tasu() Dim a As Byte a = 3 Range("a1") = a End Sub とするとエラーです。Privateが問題です。 http://oshiete1.goo.ne.jp/qa522928.html のNO1回答を参照。 >省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

i00323
質問者

お礼

出来ました!ありがとうございます!

関連するQ&A

  • Workbook_Openを起動時以外に呼び出す

    標準モジュールに書いた、Sub Auto_Open()なら、ボタンにAuto_Openを登録するなどで、ブックの起動時以外でも呼び出せますが、ThisWorkbookに書いた、Private Sub Workbook_Open()は、ボタンにWorkbook_Openを登録しても作動しません。 どのようにすればよいのでしょうか?

  • EXCEL2003のWorkBook_Openイベントについて

    必要があって以前から下記のようなWorkBook_Openを実行させていましたが必要なくなったので消したいのですがその方法を忘れてしまいました。 よろしく教えて下さい。 No.1 Private Sub Workbook_Open() Dim ws As Worksheet For Each ws In Worksheets ws.Select ws.Cells(1, ActiveCell.Column).Select Next End Sub

  • マクロで二つの構文を繋ぐには

    いつもお世話になります。 WIN7 EXCELL2010 です。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value End Sub ThisWorkbook に上記のマクロに下記のマクロを追加したいのですが、 End Sub の ところを End If End With などに変えたのですがうまくゆきません。 御指導お願いできませんでしょうか。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myRange As Range Set myRange = Intersect(Target, Range("M3:V27")) If Not myRange Is Nothing Then Select Case Target.Value Case "" Target.Value = "○" Case "○" Target.Value = "●" Case Else Target.ClearContents End Select Cancel = True End If End Sub 宜しくお願いいします。

  • Excelのマクロが実行されない

    Excelを立ち上げ、VBEでThisWorkbookに以下のマクロを記述します。 Dim WithEvents a As Workbook, WithEvents b As Workbook, WithEvents c As Workbook, WithEvents d As Workbook Private Sub Workbook_Open() Stop End Sub ファイルを保存してから起動し、マクロを有効にすると Stop で停止します。 ここで一旦 Stop を削除してから再度 Stop を挿入してから保存します。 再びこのファイルを起動し、マクロを有効にしても Stop で停止しません。 今回は簡単のため Stop にしていますが、実際には起動時の処理が実行されないため困っています。 OSはWindows7,Excelは2007です。

  • EXCEL VBA Workbook_BeforeSaveについて

    教えて下さい! 会社のホームページにある情報を公開していて、その中に更新時間も載せております。その公開している文章はEXCELを利用しHTMファイルで保存しております。ファイルは社内の共有ファイルサーバーに保存されており、複数にて共有しています。そのEXCEL HTMファイルを編集し、(上書き)保存をした際、その時の時間を更新日時としてあるセルに表示させております。自身でVBAを以下の組みました。 (保存前処理の他、開いた時の列幅処理+前回更新日時の表示も行っています) Option Explicit --------------------------------------------------------- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim KOUSHINBI As Date KOUSHINBI = Now Range("E2").Value = KOUSHINBI End Sub --------------------------------------------------------------- Private Sub Workbook_Open() MSGDISP '前回更新時間の表示 Dim TODAY As Date, KOUSHIN As Date KOUSHIN = DateValue(Range("E2").Value) TODAY = Date If KOUSHIN <> TODAY Then Columns("B:D").ColumnWidth = 0 End If End Sub -------------------------------------------------------- '以下標準モジュールで Sub MSGDISP() Dim A As Date A = Worksheets("DAILY").Range("E2").Value MsgBox ("前回の更新日時は" & A & "です") End Sub --------------------------------------------- もちろん、 Workbook_BeforeSaveと Workbook_Openは「THIS WORKBOOK」モジュールに記載しております。 これを実行すると、BOOK OPENの処理は行われるのですが、保存時の更新日時の処理が全く起きてくれません。 新規でEXCELを作成し、Workbook_BeforeSaveのみの処理を記述すると上手く処理が行われます。何が原因なのでしょうか??

  • 実行時エラー 2001

    http://officetanaka.net/excel/vba/vbe/05.htm を参考に VBAコードを取得したいのですが Declare Function GetTickCount Lib "kernel32" () As Long Public sampledata As String Sub Sample9() Dim Code As String Code = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(7, 5) MsgBox Code End Sub を実行すると 実行時エラー 2001 'VBProject'メソッドは失敗しました:'_Workbook'オブジェクト が、 Code = ThisWorkbook.~ の行で発生します。 何が間違ってますか?

  • VBA 実行時エラーで、"プロパティまたはメソッド

    ・Sheet1(コード) Private Sub CommandButton1_Click() Call aaa End Sub ・Module1(コード) Sub aaa() Dim wb As Workbook Dim ws As Worksheet Workbooks.Open ("c:\test.xls") Set wb = Workbooks("test.xls") Set ws = wb.Worksheets("Sheet1") wb.ws.Range("A2").Value = "CCC" End Sub wb.ws.Range("A2").Value = "CCC"の部分で 以下の実行エラーが出ます。 ------------------------------------------------------------------------ 実行時エラー'438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。 ------------------------------------------------------------------------ Set wb = Workbooks("test.xls") Set ws = wb.Worksheets("Sheet1") の部分で特にエラーも出ないので、オブジェクトの取得は成功していると 思うのですが、WorkSheetオブジェクトのwsからRangeメソッドを呼ぶことが できません。 動かない原因と対策を教えてください!!

  • VBA-Workbook_Open()イベントで

    再度、お世話になります。 手順1.book1よりボタンをクリックしてbook2を開く 手順2.あるフォルダの.xlsファイル名をボタン名に貼り付ける 手順3.book2の戻るボタンでbook2を閉じ、book1を開く 手順4.手順1を実行する という流れを行ったところ1回目のbook2の表示の際にはうまくファイル名を表示できるのですが、戻った後の2回目のbook2の表示ではファイル名が1回目のときのままになってしまいます。 一部 [book2での処理] ***Module1*** Public strPath as String ***ThisWorkbook*** Public Sub Workbook_Open() strPath = "C:\" & Worksheets("Sheet1").Range("A1") myName = Dir(strPath & "\*.xls", vbDirectory) If myName <> "" Then FCnt = FCnt + 1 Worksheets("Sheet1").OLEObjects("btn" & FCnt).Object.Caption = myName Do ・・・(略) Loop End If End Sub ***Sheet1*** Private Sub btnBack_Click() Workbooks.Open Filename:="C:\book1.xls" Workbooks("book2.xls").Close saveChanges:=False End Sub のようにしています。 お手数をおかけしますが、どなたかご教授お願いいたします。

  • エクセルVBA 10分後にエクセル自動終了&カウン

    どなたかご教授お願い致します。 ・エクセルの当該ブックを、起動10分後に自動終了(保存しない)させる ・開いている間は、10分のカウントダウンを「分:秒」でA1セルに表示する 以上を実行したいのですが、VBAは全く素人ですので、うまくいきません。 見よう見まねで、以下のようなことをしましたが、結局ダメでした。 何卒、よろしくお願い致します。 ThisWorkbook Workbook Open Private Sub Workbook_Open() test01 Application.OnTime Now + TimeValue("00:10:00"), "終了" End Sub 標準モジュール Module1 Sub 終了() ThisWorkbook.Close Savechanges:=False Application.Quit End Sub Sub test01() With Sheets("バックアップ").Range("A1") .Value = Time .NumberFormatLocal = "mm:ss" End With Application.OnTime Now + TimeValue("0:00:01"), "test01" End Sub

  • マクロの自動実行

    Private Sub Worksheet_Calculate() Range("b1").Value = Range("b1").Value + Range("a1").Value End Sub このマクロをA1セルの数値が変わるたびに自動で実行するには どうすればいいでしょうか?

専門家に質問してみよう