• ベストアンサー

アクセスからエクセルへ出力時のシート名について

DoCmd.TransferSpreadsheetでExcelへデータをエクスポートする際に、 シート名にハイフンを使うことはできないでしょうか? 例えばexcelシート名を"pre-date"とする。 通常だとハイフンはアンダーバーに変換されて保存されますが、 無理矢理、ハイフンをシート名に入れる方法はありませんでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

Office2002と2010で試すと・・確かに。 Excel上で手動で変更は出来ましたので同じことをやらせれば・・。 ただし、HyperLink関数やInDirect関数では、 シングルクォーテーションで囲む必要が出てくるなどデメリットも。 http://app.m-cocolog.jp/t/typecast/260142/217579/71452397 下記はOffice2010の場合です。"sheet-X" → "sheet_X" → "sheet-X"に変わってゆきます。 ご参考までということで。 Sub test() Const tblName As String = "テーブル名" Const xlName As String = "e:\test.xlsx" Dim oXL As Object Dim oBK As Object DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, tblName, xlName, False, "sheet-X" 'Excel操作部分 Set oXL = CreateObject("excel.application") Set oBK = oXL.workbooks.Open(xlName) oBK.Sheets("sheet_X").Name = "sheet-X" oBK.Close saveChanges:=True ' oXL.UserControl = True ' oXL.Visible = True Set oXL = Nothing MsgBox "終了" '確認のために開きなおす CreateObject("shell.application").shellexecute xlName End Sub

semi076
質問者

お礼

いただいたコードで試したところ、思った通りの結果を得られました! できるのかなあ?と思い質問しましたが、 2度も変換が必要になるんですね・・・。 面倒な質問にもかかわらず、ご回答いただきましてありがとうございました。 私事ですが、なかなか試せなかったため、 お礼が遅くなってしまい失礼致しました。

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

関連するQ&A

  • Access2000 Export時にシート名を指定したい。

    お世話になります。 Access2000です。 アクセスよりテーブルAをエクセルにエクスポートする時にシート名を指定したいのですがどうすればよいのですか? DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブルA", "E:\", True となっていますが・・・・ よろしくお願いします。

  • accessからエクセルにエクスポートしたファイルを開きたい。

    accessのマクロ・ワークシート変換で4枚のシートを含むエクセルファイルを作るように設定をしたのですが、これをエクスポートが終わったら自動的に開くようにしたいのですが、どのようにしたらよいでしょうか。 VBAで DoCmd.OutputTo acOutputTable, "tbl_aaa", acFormatXLS, , True と試してみましたが、シートは一つのみになってしまいます。 1つのエクセルファイルに4枚のシートを出力して、それを立ち上がるようにしたいです。 DoCmd.TransferSpreadsheet acExport, … も考えたのですが、エクセルを開く書き方がわかりません。 よろしくお願いします。

  • ACCESSのテーブルをEXCELの指定したシートにEXPORTする方法

    ACCESSのテーブルをEXCELの指定したシートにEXPORTする場合はどういうプログラム記述にすればいいのでしょうか? (例えば・・・) ACCESSの "郵政" というテーブルを "C\WINDOWS\デスクトップ\Yusei.xls” にあるEXCELの "シート1" というシートにEXPORTする場合は・・・ DoCmd.TransferDatabase DoCmd.TransferSpreadsheet DoCmd.TransferText 上のどれかを使って書いていくんですよね? だいたいは分かってるのですが、指定したシートに上手くEXPORTできません。 どなたか分かる方教えていただけませんか? 宜しくお願いします。

  • 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になりまして、問題はないのですが、ファイル名は自分で指定したいのです。 ご指導よろしくお願いします。

  • AccessからExcelのシートを削除

    現在AccessのテーブルをExcelへエクスポートする処理を書いています。 内容は以下のとおりです。 ・エクスポート先のExcelファイルは新規のものではなく既存のファイルを使用 ・エクスポートする際、以前エクスポートした分のシートを削除してから転送させたい 下記のようなコードを書きましたが実行してみると前回エクスポートした分のシートは削除されておらず 今回エクスポートしたものが追加されているという状況です。 ●エクスポート先Excelファイル名:エクセルファイル.xls ●エクスポートするテーブル名(Excelではシート名):転送テーブル Set xlsApp = CreateObject("Excel.Application") Set wkBook = xlsApp.Workbooks.Open("C\エクセルファイル.xls") wkb.Application.DisplayAlerts = False wkBook.Worksheets("転送テーブル").Activate wkBook.Worksheets("転送テーブル").Delete wkBook.Save wkBook.Close wkb.Application.DisplayAlerts = True Set xlsApp = Nothing Set wkBook = Nothing DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "エクセルファイル.xls", FullPath どうぞよろしくお願い致しますm<_ _>m

  • AccessからVBAでExcellシートのインポート

    すみません。教えてください。 AccessVBAでエクセルのシートをインポートしたいのです。 いつも同じ行数ではありませんのでrange指定を埋め込むわけに行きません。 DoCmd.TransferSpreadsheet acImport, , "給与データ報告書", "c:\test\test.xls", True, "a1:p6000" でインポートできるのですが DoCmd.TransferSpreadsheet acImport, , "給与データ報告書", "c:\test\test.xls", True, "" range指定をしないとエラーになります。(出来ると書いてあるが) sheet1、ワークシート名とかの指定が出来ればと思い、いろいろ試してみたのですが出来ません。 宜しくお願いいたします。

  • Access2000よりエクセルへエクスポートする際の範囲?

    こんばんわ。 最近アクセスを始めたばかりの初心者です。 この度、クエリよりエクセル(Ver.2000)へデータのエクスポートをしたいと思ったのですが、最初の一回目はうまくいくのですが、テストを繰り返すと(恐らくレコードが増えるため)、範囲を拡張することができません、というエラーが出てエクスポートができません。どのように解決したら宜しいのかご教示頂けたらと存じます。今は下位のようにしています。 Docmd.TransferSpreadsheet acexport, 8, "クエリ名","パス\エクセルファイル名", True 宜しくお願い致します。

  • MSアクセス エクセルへのエクスポートについて

    アクセスの初心者です。いろいろ調べてみたのですがわかりません。どうか教えてください。よろしくお願いします。 アクセスのフォームにボタンを作り、そのボタンを押すとエクセルにエクスポートするように設定しました。しかしデータが全てエクスポートされてしまいます。目指しているのは”開いているフォームのデータのみをエクスポートしたい”のです。 フォーム名:申込書 エクスポートしたいフォームのデータ(クエリ)名:申込書 エクスポート先:エクセルc:¥申込書 です。 主キー:申込ID 仮にフォームで申込IDが「3」を開いていれば、その「3」のデータのみをエクスポートするVBAを教えてください。 現在はここまでの段階で止まっています。↓これにプラスする記述で目指すものができればと思います。 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "申込書", "c:\申込書.xls", True, "" お手数ですがよろしくお願いします。

  • AccessVBA Excelエクスポートについて

    AccessVBA Excelエクスポートで質問です。(DoCmd.TransferSpreadsheet acExport) 既存Excelファイルに名前定義し、そこにVBAを用いてエクスポートをしたいのですが、 名前定義したところにエクスポートされません。 ※PC環境:Win7 Access2007 Excel2007 ※出力されるデータ行は、抽出する際の条件により変動あり <Excel側で設定している名前定義> 名前:Data、範囲:ブック、参照範囲:データ!$B$5:$M$5 <Access VBAで書き込みしている内容> DoCmd.TransferSpreadsheet acExport, 8, "テーブル名","ファイル名", False,"Data" <Access側で実行し、実際にExcelにエクスポートされる1行目の位置> 名前定義したところからエクスポートされず、 名前定義をしているシート、列にはエクスポートされるのですが、データ1行目が名前定義していない箇所で、 シート名:データ B1:M1 が1行目にエクスポートされてしまいます。 今まで作っていたVBAでは、問題なくエクスポートできていたのですが、 現在作成しているものでは、なぜかできなくなってしまいました。 今までが運良く動いていただけでしょうか?→誤っている箇所を教えて下さい。 正しくVBAや名前定義ができているとして、このような現象を回避する術はありますでしょうか? おわかりになる方、どうぞご教示いただけるようよろしくお願い致します。

  • ACCESS エクスポートについて

    ACCESSのエクセルへのエクスポートについて お世話になりあます。 既存エクセルにACCESSのDoCmdを使用してエクスポートしようと考えています。 エクスポート先は既存エクセル(セルに数式あり)です。 DoCmd.TransferSpreadsheet acExport, SpreadsheetType, TableName, FileName , True,SheetName という分を作り実行しましたが、「ワークシートのセルが削除できません」と出てしまい エクスポートできません。 ヘルプを見ると数式が含まれていると出来ないと書いてありました。 数式を消さないと出来ないのでしょうか。 お手数ですが、分かる方おられましたら教えて下さい。

BIOSアップデートできない
このQ&Aのポイント
  • ノートPCのドライバアップデート一覧に含まれるBIOSを適用しようとするとエラーが発生し、アップデートできない状況になっています。
  • 再起動しても同様のエラーが継続し、BIOSのアップデートができない状態です。
  • 富士通FMVのノートPCでのBIOSアップデートに関して、エラー解消の事例や対処法を教えていただきたいです。
回答を見る