アクセスで標準モジュールの中身を書き出したい
- アクセスバージョンはないでしょうか?
- http://officetanaka.net/excel/vba/vbe/05.htmのSub Sample9()のエクセルではなく
- http://d.hatena.ne.jp/taka_2/20090907/p2をアクセスの標準モジュールに貼り付けてみたのですがinFileName = WScript.Arguments(0)で実行時エラー424になってしまいます。
- ベストアンサー
アクセスで標準モジュールの中身を書き出したい
http://officetanaka.net/excel/vba/vbe/05.htm の Sub Sample9() Dim Code As String Code = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(7, 5) MsgBox Code End Sub のエクセルではなく アクセスバージョンはないでしょうか? http://d.hatena.ne.jp/taka_2/20090907/p2 をアクセスの標準モジュールに貼り付けてみたのですが inFileName = WScript.Arguments(0) で実行時エラー424になってしまいます。
- jdofdntat
- お礼率95% (78/82)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 二つ目のリンク先の 使い方 •下のソースをmdb2text.vbsとして保存する •mdbファイルをmdb2text.vbsにドラッグアンドドロップする って、読みましたか?
関連するQ&A
- 実行時エラー 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.~ の行で発生します。 何が間違ってますか?
- ベストアンサー
- Visual Basic
- 自身が記述された標準モジュールを常に参照する方法
標準モジュール名を指定せず、自身が記述された標準モジュールを常に参照する方法 例えば A = W_Book.VBProject.VBComponents("Module56").CodeModule.ProcBodyLine("Workbook_SheetSelectionChange", 0) というコードを"Module56"内に記述した場合Module56という標準モジュール名を例えばModule44と変更してしまうと動かなくなってしまうと思います。 これを、常にThisWorkbookのように、このコードが記述されたモジュールを参照するように変更はできますでしょうか?もしご存知でしたらご回答頂けますと幸いです。どうぞよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- EXCEL2000VBA実践プログラミングリファレス「著者:大村あつし
EXCEL2000VBA実践プログラミングリファレス「著者:大村あつし、栗山 恵吉、田中 博人、出版社エーアイ出版」のサンブルマクロが動かない。 マクロの初心者です。 私のパソコンはエクセル2007を利用しています。 サンプルマクロを動かす以前に、全てのサンプルに With ThisWorkbook.VBProject.VBComponents("Module1") に黄色のエラーが出てしまいます。 なぜかわかればご教示お願いします。 'コードを表示 Function GetCode(ByVal NowProc As String, ByVal NextProc As String) As String Dim myStartLine As Integer Dim myEndLine As Integer 黄色のエラー箇所⇒With ThisWorkbook.VBProject.VBComponents("Module1") myStartLine = .CodeModule.ProcBodyLine(NowProc, vbext_pk_Proc) If NextProc <> "" Then myEndLine = .CodeModule.ProcStartLine(NextProc, vbext_pk_Proc) Else myEndLine = .CodeModule.ProcCountLines(NowProc, vbext_pk_Proc) + myStartLine End If GetCode = .CodeModule.Lines(myStartLine, myEndLine - myStartLine) End With End Function
- ベストアンサー
- オフィス系ソフト
- EXCEL2003VBA 「マクロでモジュール解放」
質問番号:5548045の関連質問です。 EXCEL2003VBA で、セキュリティ設定で『Visual Basic プロジェクトへのアクセス』にチェックを入れて、Module1に下記のように「モジュール解放」マクロを作成しましたが、Module1が削除されません。(1)を削除して、手動操作で変更を保存でファイルを閉じるとModule1も削除されます。 Module1の削除も全てマクロで行うやり方を教えてください。 With ThisWorkbook.VBProject.VBComponents .Remove .Item("Module1") .Remove .Item("Module2") .Remove .Item("Module3") End With ActiveWorkbook.SaveAs Filename:="D:\TEST" ActiveWorkbook.Close ・・・(1)
- ベストアンサー
- Visual Basic
- VBA このような出力は不可能でしょうか?
Public Function first_date() i = 1 '←追加されるライン kidou = 2011 / 2 / 20 '←追加されるライン If i <> 1 Then With ThisWorkbook.VBProject.VBComponents("Module_first").CodeModule .InsertLines 2, vbTab & "i = 1" .InsertLines 3, vbTab & "kidou = " & Date + 10 End With MsgBox "1回目:起動期限 " & Date + 10 Exit Function Else MsgBox "2回目:起動期限は" & kidou End If End Function このような形でVBAの使用期限を自身のVBE書き込むという事をしたいのですが2回目以降のデータの取得が上手くいきません。 ただ単に変数kidouの型が上手く取得出来ず変な値が出てるだけのようなのですが、こういうデータの取得方法は不可能なのしょうか? 3行目の追加方法として一番ベストな方法を教えて頂ければと思います。色々やってみたのですが上手くいかず困ってます。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- シート・別ファイルを使用せずに、テキストデータを保存できないでしょうか。
オフィス2003のデータで、数ヶ月に一度項目名とセル番地が変わるので、デフォルト設定をするマクロを作ろうと考えています。 以下のコードで、モジュール内のコードを置換するので解決しそうですが、 「ツール」→「マクロ」→「セキュリティ」で「□Visual Basicプロジェクトへのアクセスを信頼する」にチェックを入れないといけないので、やりたくないのです。 ------------------------------------------ Sub tikan() Dim i As Integer With ThisWorkbook.VBProject.VBComponents(\"Sample\").CodeModule For i = 1 To .CountOfLines If .Lines(i, 1) = \"置換前\" Then .ReplaceLine i, \"置換後\" End If Next i End With Target.Save End Sub ------------------------------------------ シート・別ファイルを使用せずに、デフォルト設定のテキストデータを記録する場所はないものでしょうか? ご存知の方、教えてください。
- ベストアンサー
- オフィス系ソフト
- Excel VBAでオブジェクト名を変更する方法
Excelでシートを新規追加するマクロを作っています。この時、下記のようなコードでシート名を変更するのですが、同時にオブジェクト名も変更する事は可能でしょうか? Sheets.Add ActiveSheet.Name = "テスト" なぜオブジェクト名も変更したいのかと言いますと、動的にイベントプロシージャを作成する際、下記のようなコードを記述してるのですが、シート名とオブジェクト名が一致してないとエラーが出てしまうんです。 Dim cdMoj as CodeModule Dim Ln as Long Set cdMoj = ThisWorkBook.VBProject.VBComponents(ActiveSheet.Name).CodeModule Ln = cdMoj.CreateEventProc("Click", "Command1") cdMoj.InsertLines Ln + 1, "MsgBox ""VBAで追加したマクロです。""" なにか良い方法がありましたらご教授下さい。どうぞ宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【VBA】SUBプロシージャーは標準モジュール以外に書いてもいい?
ThisWorkbookのコードを書く場所や Sheetのイベントプロシージャーが実行されるところに Sub test() MsgBox "あああ" End Sub と書いて実行するとメッセージボックスが表示されます。 クラスモジュールとフォームのイベントプロシージャーを書くところではできませんでした。 ということはSUBプロシージャーは 標準モジュールでなくてもいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- VBAでのマクロ削除
複数のExcelファイルを読み込み必要なデータのみをsheet1に寄せ集め最後にExcel形式で保存するというコードを書きました。保存したExcelファイルは、次回同じVBAのコードからWorkbooks.Open Filenameで開く必要があるため、マクロを削除してから保存しないといけないことに気付きました。 ACompo = ExcelWorkbook1.VBProject.VBComponents.Item("module1") ExcelWorkbook1.VBProject.VBComponents.Remove (ACompo) 最終的にやりたいことは、3つのフォームと2つの標準モジュールを削除したい(ワークブックモジュールにもコード書いてありますのでそれも) ということになります。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- excel VBA コピーファイルのマクロ削除
下記3つの、プロシージャを組み合わせて、下記のやりたいことをやりたいのですが、うまくいきません。 どうかご教授の程よろしくお願いいたします。 excelは2000です。 ○やりたいこと 今現在開いているファイルの、コピーをデスクトップに保存して、その保存したブックのマクロ(標準モジュールと、コマンドボタン)を削除したい。 ○自分でやろうとすると コピーをデスクトップに保存すると、コピー元のファイルが勝手に閉じてしまい、コピー先のファイルのマクロを削除できない。 '■デスクトップにコピー保存 Sub copysave() Dim 場所 As String 場所 = CreateObject("WScript.Shell").SpecialFolders("Desktop") ActiveWorkbook.SaveAs Filename:=場所 & "\" & Format(Date, "yyyymmdd") & "○◆△.xls" End Sub '■標準モジュールの削除 Sub DelModule() Application.VBE.ActiveVBProject.VBComponents.Remove _ Application.VBE.ActiveVBProject.VBComponents("Module1") Application.VBE.ActiveVBProject.VBComponents.Remove _ Application.VBE.ActiveVBProject.VBComponents("Module2") End Sub '■CommandButtonの削除 Sub DelCommandButton() Dim c As Excel.OLEObject For Each c In Worksheets(1).OLEObjects If TypeOf c.Object Is Msforms.CommandButton Then c.Delete End If Next End Sub
- ベストアンサー
- オフィス系ソフト
お礼
どうもありがとうございました。