ACCESS2013VBA任意の文字列付与する方法

このQ&Aのポイント
  • ACCESS2013を使用してフォームにコマンドボタンを配置し、指定したフォルダ内にテキストボックスに入力した文字を付与してエクセル形式で出力する方法について教えてください。
  • フォームにテキストボックスを配置し、入力した文字をファイル名の末尾に付与してエクセルファイルとして出力する方法を教えてください。
  • ACCESS2013でフォームにコマンドボタンを置き、指定したフォルダ内にテキストボックスに入力した文字を付与してエクセルファイルとして出力する方法について教えてください。
回答を見る
  • ベストアンサー

ACCESS2013VBA任意の文字列付与する方法

ACCESS2013を使用しています。 メニュー用に作成したフォームにコマンドボタンを置いて、下記のようなソースを割り当て、 ボタンを押すとstrPathで指定したフォルダ内にエクセル形式にて出力するようにしています。 このフォームにテキストボックスを置いて、そこに入力した文字を出力するファイル名の末尾に 付与するにはどうしたら良いでしょうか? よろしくお願いいたします。 Function 一括エクスポート() On Error GoTo 一括エクスポート_Err strPath = "C:\Users\tanaka\Desktop\エクスポート\" DoCmd.OutputTo acOutputQuery, "DCAC", "ExcelWorkbook(*.xlsx)", strPath & "エクスポートデータ1.xlsx", False, "", , acExportQualityPrint DoCmd.OutputTo acOutputQuery, "DCAC", "ExcelWorkbook(*.xlsx)", strPath & "エクスポートデータ2.xlsx", False, "", , acExportQualityPrint DoCmd.OutputTo acOutputQuery, "DCAC", "ExcelWorkbook(*.xlsx)", strPath & "エクスポートデータ3.xlsx", False, "", , acExportQualityPrint 一括エクスポート_Exit: Exit Function 一括エクスポート_Err: MsgBox Error$ Resume 一括エクスポート_Exit End Function

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

連続ですが、 もし、Function 一括エクスポート()を標準モジュールに設定したいのであれば、 >strPath & "エクスポートデータ1" & Me!テキストボックス名 & ".xlsx", False を strPath & "エクスポートデータ1" & Forms!フォーム名!テキストボックス名 & ".xlsx", False のようにし、ボタンクリックで Call 一括エクスポート とします。

その他の回答 (2)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

>「Meキーワードの使用方法が不正です」と出てしまいました。 Function 一括エクスポート() は、標準モジュールに設定しているのでしょうか。 それならばこの中身をコマンドボタンのクリックイベントに 設定すれば上記のようなエラーは出ないはずですが。 たとえば、 Private Sub コマンド0_Click() 'ここに「Function 一括エクスポート()」の中身を入れる End Sub あるいは、同じフォームの中にFunction 一括エクスポート() をPrivateととして、 Preivate Function 一括エクスポート() 'Function 一括エクスポート()の中身 End Function として、 Private Sub コマンド0_Click() Call 一括エクスポート End Sub のような感じ。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

たとえば、 >strPath & "エクスポートデータ1.xlsx", False のところを strPath & "エクスポートデータ1" & Me!テキストボックス名 & ".xlsx", False のようにしてみては?

tanapyondai
質問者

補足

「Meキーワードの使用方法が不正です」と出てしまいました。

関連するQ&A

  • AccessからExcelへエクスポートするVBA

    いつもお世話になっております。 AccessのクエリからデータをExcelにエクスポートします。 形式はMicrosoft Excel97-2003です。 フォーム"F_全データ"にボタンを付けて、クリックするとファイル名を自分で付けて保存する。というVBAを作成したいです。 1つ目のVBAは DoCmd.OutputTo acForm, "F6_全データ", "MicrosoftExcelBiff8(*.xls)", "", False, "", 0 これだと、ファイルの種類が、Microsoft Excel5-7になってしまい困ります。 この形式になってしまうと、Excelデータを開くと、文字数が多いところが保存されていません。これだと困ります。 2つ目が DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "F_全データ", "○○○.xls" こちらですと、ファイルの種類は97-2003になりまして、問題はないのですが、ファイル名は自分で指定したいのです。 ご指導よろしくお願いします。

  • アクセスVBAのエラーについて

    フォームを閉じるためにフォームにボタンを置いて、イベントプロシージャに下記のように書き込みました。すると添付画像のエラーが返ってきてマクロが動きません。 Private Sub コマンド103_Click() On Error GoTo Err_コマンド103_Click DoCmd.Close Exit_コマンド103_Click: Exit Sub Err_コマンド103_Click: MsgBox Err.Description Resume Exit_コマンド103_Click End Sub で、「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作します。 つまり”フォームの表示”で選んだフォームでしかコマンドボタンのマクロが動きません。全てのフォームでマクロが動くにはどうしたらよいのでしょうか?

  • アクセス2003からエクセル形式でのエクスポート

     いつもお世話になっております。  さて、アクセス2003のデータを「DoCmd.OutputTo acOutputQuery」で、エクセル 2003形式でエクスポートしましたが、長い文字(テーブルは「メモ型」)の文章だと 途中で途切れてしまいます。  500文字位の長い文章でも、途中で途切れずエクスポートできる方法をお教え 願えませんでしょうか。  どうぞよろしくお願いします。 【例】 クエリ名:Q_AAA 出力先:デスクトップ 出力するエクセル名:bbb.xls

  • ACCESS VBA 追加貼り付けが無効

    アクセスのVBAでエクセルのデータを編集してテーブルに追加貼り付けをしたいのですが、「追加貼り付けは無効」とポップアップが表示されてうまくいきません。 追加貼り付けのFunctionを呼び出す前のエクセルのRangeをコピーした段階で手動でテーブルに追加貼り付けをすると、追加貼り付けをします。 追加貼り付けのコードは下記のとおりですが、どこを修正すればよろしいでしょうか。 Function 追加貼り付け() On Error GoTo 追加貼り付け_Err 'この下の行のacEditをacAddに変えても、追加貼り付けは無効でした。 DoCmd.OpenTable "読み込み", acNormal, acEdit DoCmd.RunCommand acCmdPasteAppend '追加貼り付けする際に出てくるアラーム解除はこの下の行でよいのではないでしょうか。 DoCmd.SetWarnings False 追加貼り付け_Exit: Exit Function 追加貼り付け_Err: MsgBox Error$ Resume 追加貼り付け_Exit End Function

  • Access→Excelへエクスポートすると日付の表示形式が変化する

    DoCmd.OutputTo acOutputQuery, "クエリ1", "MicrosoftExcelBiff8(*.xls)" のように クエリをエクセルへエクスポートしたときに もともと「2009/05/27 23:21:00」と入力されていた(DATE型の)日付の形式が エクスポート後は「27-May-09」に変わってしまいます。 そのままの書式でエクスポートするにはどうすればいいですか? よろしくお願いします。

  • アクセス2000→エクセル2010へエクスポート

    Private Sub cmd出力ボタン_Click() DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acExport, 8, "出力クエリ", "C:データ.xlsx", True, "" DoCmd.SetWarnings True End Sub 実行すると 外部テーブルのフォーマットが正しくありません と出てしまいます。 エクセル97の形式にエクスポートする際は大丈夫でした。 spreadsheettypeの引数が違うのかとは思いますが適切な数値がわかりません。 他のやり方等もあれば教えて下さい。

  • エクセルVBA アクセスにインポート

    エクセルのデータ(列数、行タイトルは都度かわる)をアクセスにインポートしテーブルを作成したいと思っています。 VBAでこの処理をおこないたく、下記のコードで実行したのですがデバッグがはしってしまいます。 (DとEでデバッグ) 原因がお分かりになる方がおりましたら、教えていただけますでしょうか? 何卒、よろしくお願い申し上げます。 Function ExcelDataImport() 'On Error GoTo エラー Dim varac As Variant Dim varxls As Variant Dim strrange As String Dim strmsg As String varac = "T_TESTTABLE" ' --- A varxls = "C:\Users\AC\Desktop\ACTEST\RAWDATA.xlsx" ' ---B strrange = "TEST_RAWDATA" ' --- C strmsg = "Excelファイル" & varxls & " を、Accessテーブル " & varac & _ "へ、データ入力を行います。" & Chr(13) & _ "Excelファイルの入力レンジは、 " & strrange & " です。" DoCmd.DeleteObject acTable, varac ' --- D If MsgBox(strmsg, vbOKCancel) = vbOK Then DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _ varac, varxls, True, strrange ' -- E MsgBox "データ入力は、正常に完了しました。" End If Exit Function エラー: MsgBox "予期せぬエラーが発生しました。" & Chr(13) & _ "エラー番号:" & Err.Number & Chr(13) & _ "エラー内容:" & Err.Description, vbCritical Exit Function End Function

  • ACCESSデータをEXCELに出力したい。

    ACCESSでフィルタを使って複数項目(空欄の箇所がある場合もあり)を抽出したデータ(サブフォームに表示)だけをEXCELに出力したいのですが、下記のコードではすべてのデータが出力されてしまいます。 ------------------------------- Private Sub 出力_Click() DoCmd.OutputTo acOutputQuery, "Q_出力", acFormatXLS End Sub ------------------------------- 情報が少なかったらすみません。 よろしくお願いいたします。

  • Accessエクスポート時に連番を入れたい。

    クエリ出力は以下でできたのですが、 ワークシート名がQ_testのみで上書きになります。 Excel出力時に、Q_testxx (x=月)にしたいです。 Function M_test() On Error GoTo M_test_Err DoCmd.TransferSpreadsheet acExport, 8, "Q_test", "c:\test.xls", False, "" M_test_Exit: Exit Function M_test_Err: MsgBox Error$ Resume M_test_Exit End Function

  • access vba 構文の解読

    access vba 構文の解読 はじめまして先ほどaccess2003について質問させていただいたものです。以下の構文が先ほどの続きです。こちらも皆様のお力で構文を解読していただけないでしょうか。 すみません解読とは、構文の一行一行が何を示しているのか教えていただけると助かります。 よろしくお願いいたします。 ' Exit the application. Case conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro DoCmd.RunMacro rs![Argument] ' Run code. Case conCmdRunCode Application.Run rs![Argument] ' Open a Data Access Page Case conCmdOpenPage DoCmd.OpenDataAccessPage rs![Argument] ' Any other command is unrecognized. Case Else MsgBox "不明なオプションです。" End Select ' Close the recordset and the database. rs.Close HandleButtonClick_Exit: On Error Resume Next Set rs = Nothing Set con = Nothing Exit Function HandleButtonClick_Err: ' If the action was cancelled by the user for ' some reason, don't display an error message. ' Instead, resume on the next line. If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox "コマンド実行中のエラーです。", vbCritical Resume HandleButtonClick_Exit End If End Function Private Sub メニュー終了_Click() On Error GoTo Err_メニュー終了_Click DoCmd.Close Exit_メニュー終了_Click: Exit Sub Err_メニュー終了_Click: MsgBox Err.Description Resume Exit_メニュー終了_Click End Sub Private Sub 終了_Click() On Error GoTo Err_終了_Click DoCmd.Quit Exit_終了_Click: Exit Sub Err_終了_Click: MsgBox Err.Description Resume Exit_終了_Click End Sub

専門家に質問してみよう