プロが教えるわが家の防犯対策術!

DoCmd.TransferSpreadsheetでExcelへデータをエクスポートする際に、
シート名にハイフンを使うことはできないでしょうか?

例えばexcelシート名を"pre-date"とする。

通常だとハイフンはアンダーバーに変換されて保存されますが、
無理矢理、ハイフンをシート名に入れる方法はありませんでしょうか?

よろしくお願いいたします。

A 回答 (1件)

Office2002と2010で試すと・・確かに。


Excel上で手動で変更は出来ましたので同じことをやらせれば・・。
ただし、HyperLink関数やInDirect関数では、
シングルクォーテーションで囲む必要が出てくるなどデメリットも。
http://app.m-cocolog.jp/t/typecast/260142/217579 …
下記は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
    • good
    • 0
この回答へのお礼

いただいたコードで試したところ、思った通りの結果を得られました!

できるのかなあ?と思い質問しましたが、
2度も変換が必要になるんですね・・・。
面倒な質問にもかかわらず、ご回答いただきましてありがとうございました。

私事ですが、なかなか試せなかったため、
お礼が遅くなってしまい失礼致しました。

お礼日時:2013/08/17 16:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A