Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


191 / 2272 ツリー ←次へ | 前へ→

【12610】Access2013環境だと上手くいかない? Yakin 14/9/6(土) 21:56 質問[未読]
【12611】Re:Access2013環境だと上手くいかない? 独覚 14/9/9(火) 10:06 質問[未読]
【12612】Re:Access2013環境だと上手くいかない? Yakin 14/9/9(火) 22:22 質問[未読]
【12613】Re:Access2013環境だと上手くいかない? 独覚 14/9/10(水) 13:43 回答[未読]
【12618】Re:Access2013環境だと上手くいかない? Yakin 14/9/12(金) 22:13 お礼[未読]

【12610】Access2013環境だと上手くいかない?
質問  Yakin  - 14/9/6(土) 21:56 -

引用なし
パスワード
   こんばんは、

Access2013の環境で、古いバージョンのVBAが動かなくて、試行錯誤で
やってみましたが、うまくいきません。
助けて下さい!よろしくお願いします。

問題点:Access2013/Excel2013環境で、以下のVBAを実行すると、xlsWkb.SaveAs OutFileのところ黄色反転

--------------------------------------------------------------------------
Function ExcelExport()
'※要参照 Microsoft DAO x.x Object Library
Const TName = "分布_003"      'データの入っているテーブル名
Const OutFile = "C:\分析データ.xls"   'エクスポート先 Excelファイル名
Dim RS1 As DAO.Recordset
Dim RS2 As DAO.Recordset
Dim strSQL1 As String
Dim strSQL2 As String
Dim xlsApp As Object
Dim xlsWkb As Object
Dim xlsSht As Object
Dim i As Long

Dim RetVal As Variant
  RetVal = SysCmd(acSysCmdSetStatus, "【分析データ】出力中・・・しばらくお待ち下さい")
  On Error Resume Next
    Kill OutFile
  On Error GoTo 0
 
  Set xlsApp = CreateObject("Excel.Application")
  Set xlsWkb = xlsApp.Workbooks.Add
 
  strSQL2 = "SELECT DISTINCT 分布エリア FROM " & TName
 
  Set RS2 = CurrentDb.OpenRecordset(strSQL2, dbOpenSnapshot)
  Do Until RS2.EOF
    Set xlsSht = xlsWkb.Worksheets.Add
      xlsSht.Name = RS2![分布エリア]
   
    strSQL1 = "SELECT * FROM " & TName _
        & " WHERE 分布エリア = '" & RS2![分布エリア] & "';"
  
    Set RS1 = CurrentDb.OpenRecordset(strSQL1, dbOpenSnapshot)
      For i = 1 To RS1.Fields.Count
        xlsSht.Cells(1, i).Value = RS1(i - 1).Name
      Next
      xlsSht.Range("A2").CopyFromRecordset RS1
      xlsSht.Range("A1").CurrentRegion.Columns.AutoFit
      xlsSht.Range("A1").CurrentRegion.Rows.AutoFit
      RS1.Close
    Set RS1 = Nothing
    RS2.MoveNext
  Loop
  
  Set RS1 = Nothing
  RS2.Close: Set RS2 = Nothing
  
  On Error Resume Next
    For i = 1 To 3
      xlsWkb.Sheets("Sheet" & i).Delete
    Next
  On Error GoTo 0
  Set xlsSht = Nothing
  '
  '↓黄色反転。Access2003/Excel2003の時、問題なかった。
  xlsWkb.SaveAs OutFile
  xlsWkb.Close: Set xlsWkb = Nothing
  xlsApp.Quit: Set xlsApp = Nothing
 
  MsgBox "終了しました。"
End Function
--------------------------------------------------------------------------

【12611】Re:Access2013環境だと上手くいかない?
質問  独覚  - 14/9/9(火) 10:06 -

引用なし
パスワード
   ▼Yakin さん:
黄色反転時にエラーメッセージはなかったのでしょうか?
もしあるのならばそのエラーメッセージを示してください。

【12612】Re:Access2013環境だと上手くいかない?
質問  Yakin  - 14/9/9(火) 22:22 -

引用なし
パスワード
   ▼独覚 さん:
>▼Yakin さん:
>黄色反転時にエラーメッセージはなかったのでしょうか?
>もしあるのならばそのエラーメッセージを示してください。


実行すると、以下のメッセージがでます。

タイトル:Microsoft Visual Basic
内  容:ファイル'C:\29FD7B30'にアクセスできません。
     次のいずれかの理由が考えられます。
     ?ファイル名またはパスが存在しません。
     ?ファイルがその他のプログラムによって使用されています。
     ?保存しようとしているブックと同じ名前のブックが現在開かれて
      います。

【12613】Re:Access2013環境だと上手くいかない?
回答  独覚  - 14/9/10(水) 13:43 -

引用なし
パスワード
   ▼Yakin さん:
以前とOSも違ってますか?

WindowsVist以降でUACが有効の場合はCドライブ直下にはユーザーファイルを
作成できないようになってるそうなので
>Const OutFile = "C:\分析データ.xls"
部分をCドライブ直下ではなく例えば
>Const OutFile = "C:\WK\分析データ.xls"
のようにフォルダ内に保存するように変更してはどうでしょうか?

【12618】Re:Access2013環境だと上手くいかない?
お礼  Yakin  - 14/9/12(金) 22:13 -

引用なし
パスワード
   こんばんは、
 早速、試してみました、やはりc:\への保存を避ければ、問題なく動きました。
ほんとうにありがとうございました。

191 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free