Access VBA質問箱 IV

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

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


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

【12071】EXCELへの出力・編集 AKG 11/9/5(月) 22:45 質問[未読]
【12072】Re:EXCELへの出力・編集 よろずや 11/9/6(火) 0:38 回答[未読]
【12089】Re:EXCELへの出力・編集 AKG 11/9/28(水) 14:39 質問[未読]
【12090】Re:EXCELへの出力・編集 よろずや 11/9/29(木) 0:19 回答[未読]
【12092】Re:EXCELへの出力・編集 AKG 11/10/5(水) 22:37 質問[未読]
【12093】Re:EXCELへの出力・編集 ちょっち 11/10/6(木) 11:14 発言[未読]
【12099】Re:EXCELへの出力・編集 AKG 11/10/13(木) 11:10 質問[未読]

【12071】EXCELへの出力・編集
質問  AKG  - 11/9/5(月) 22:45 -

引用なし
パスワード
   こんばんは。
会社で集計ツールを作成しているのですが、会社に相談できる方もおらず
自分で調べるのも限界なので質問させてください。

ACCESSフォームでメイン画面を作り、元データの取り込み、集計までは完成しているのですが・・・
[出力]のボタンを押して、できた集計表をEXCELファイルに出力で詰まりました。

1. 出力したい集計表は3テーブル
2. それぞれを別シート、1ファイルで出力
3. 出力したファイルのデータに罫線、セルの色分け、セルの結合などの編集

自分で使う集計ツールではないので、できるだけ簡潔にしてあげようと思っています。

現状↓

Private Sub 出力_Click()

DoCmd.TransferSpreadSheet AcExport,8,"集計表1","C:\集計まとめ",True,"集計表1"
DoCmd.TransferSpreadSheet AcExport,8,"集計表2","C:\集計まとめ",True,"集計表2"
DoCmd.TransferSpreadSheet AcExport,8,"集計表3","C:\集計まとめ",True,"集計表3"

Call 出力編集

MsgBox"Cドライブに『集計表まとめ.xls』を出力しました。"

End Sub

問題の出力編集の中身なのですがどうやっても、うまくいきません・・・

質問の仕方、内容が大雑把で申し訳ありませんがアドバイスをいただけたら
と思います。
よろしくお願いいたします。

【12072】Re:EXCELへの出力・編集
回答  よろずや  - 11/9/6(火) 0:38 -

引用なし
パスワード
   こちらが参考になるでしょうか。

h tp://www.accessclub.jp/samplefile/samplefile_204.htm

【12089】Re:EXCELへの出力・編集
質問  AKG  - 11/9/28(水) 14:39 -

引用なし
パスワード
   お答えいただいたのに、時間が空いてしまってもうしわけありません。

>こちらが参考になるでしょうか。
>
>h tp://www.accessclub.jp/samplefile/samplefile_204.htm

何度も読み返してみたのですが、内容としては出力とEXCELの基点のセル位置へ
テーブルを転記するものだと解釈いたしました。

このやり方だと事前にEXCELのシートは準備しておいて、貼り付けるといった感じでしょうか。

それだと、少しやりたいこととちがうかと思います。

EXCEL出力まではできています。
問題はこの出来上がったファイルのシートに罫線等の編集を自動で行い、表の見栄えをよくしてあげたいのです。

大雑把な質問をしてすみません。
お答えいただけたら幸いです、よろしくお願いいたします。

【12090】Re:EXCELへの出力・編集
回答  よろずや  - 11/9/29(木) 0:19 -

引用なし
パスワード
   ▼AKG さん:
>お答えいただいたのに、時間が空いてしまってもうしわけありません。
>
>>こちらが参考になるでしょうか。
>>
>>h tp://www.accessclub.jp/samplefile/samplefile_204.htm
>
>何度も読み返してみたのですが、内容としては出力とEXCELの基点のセル位置へ
>テーブルを転記するものだと解釈いたしました。
>
>このやり方だと事前にEXCELのシートは準備しておいて、貼り付けるといった感じでしょうか。

提示したページはオートメーションのほんの一例です。
オートメーションを使うとエクセルのすべての機能を使用できます。

(1)新しいブックを作る。
(2)テーブルデータをシートに貼り付ける。
(3)罫線等を付ける。
(4)新しいシートを追加する。
(5)テーブルデータをシートに貼り付ける。
(6)罫線等を付ける。
(7)新しいシートを追加する。
(8)テーブルデータをシートに貼り付ける。
(9)罫線等を付ける。
(10)ブックを保存する。
すべてできます。

createobject excel.application
で検索してみてください。

【12092】Re:EXCELへの出力・編集
質問  AKG  - 11/10/5(水) 22:37 -

引用なし
パスワード
   ▼よろずや さん
またお時間空いてしまって申し訳ありません。

>提示したページはオートメーションのほんの一例です。
>オートメーションを使うとエクセルのすべての機能を使用できます。
>
>(1)新しいブックを作る。
>(2)テーブルデータをシートに貼り付ける。
>(3)罫線等を付ける。
>(4)新しいシートを追加する。
>(5)テーブルデータをシートに貼り付ける。
>(6)罫線等を付ける。
>(7)新しいシートを追加する。
>(8)テーブルデータをシートに貼り付ける。
>(9)罫線等を付ける。
>(10)ブックを保存する。
>すべてできます。
>
>createobject excel.application
>で検索してみてください。

教えていただいたページを参考に少しがんばってみました。

Attribute VB_Name = "Module1"
Option Compare Database
Sub 出力編集()
 
 Dim xlApp As Excel.Application
 Dim xlBook As Excel.Workbook
 Dim xlSheet As Excel.Worksheet
 Dim strFilename As String
 Dim strSheetName As String
                                
  strFilename = "C:\ファイル.xls"
 
  strSheetName = "シート1"

 Set xlApp = CreateObject("Excel.Application")
 
  xlApp.Workbooks.Open Filename:=strFilename, UpdateLinks:=0
 
  xlApp.Visible = True

 Set xlBook = xlApp.Workbooks(Dir(strFilename))

 Set xlSheet = xlBook.Worksheets(strSheetName)
 
 ’xlSheet.Cells(1, 1).Value = "HELLO"

 
xlSheets("strSheetName").Select

  Range("A1:K41").Select
  Selection.Borders(xlDiagonalDown).LineStyle = xlNone
  Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  
  With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlInsideVertical)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlInsideHorizontal)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  
  Range("A1:K1").Select
  Selection.Font.Bold = True
  With Selection
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
  End With

strSheetName = "シート2"

xlSheets("strSheetName").Select

Range("A1:AG71").Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone

  With Selection.Borders(xlEdgeLeft)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeTop)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeBottom)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeRight)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlInsideVertical)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlInsideHorizontal)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With

strSheetName = "シート3"

xlSheets("strSheetName").Select

Range("A1:AG14").Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone

  With Selection.Borders(xlEdgeLeft)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeTop)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeBottom)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlEdgeRight)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlInsideVertical)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With
  
  With Selection.Borders(xlInsideHorizontal)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
  End With

' xlApp.Run ("Macro4")
xlBook.Close saveChanges:=True
xlApp.Quit

 Set xlSheet = Nothing
 Set xlBook = Nothing
 Set xlApp = Nothing

End Sub

このようなカンジにつくってみたのですが、「SubまたはFunctionがありません」というエラーがでてしまいます。

1番上のこの行でした
xlSheets("strSheetName").Select


1度EXCELにマクロを作って、そちらを起動させようかとも考えたのですが・・・
できればACCESS内で完結させたいのでアドバイスいただけるとありがたいです。

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

【12093】Re:EXCELへの出力・編集
発言  ちょっち  - 11/10/6(木) 11:14 -

引用なし
パスワード
   ▼AKG さん、よろずや さん

横からすみません。
通りすがりでこのスレを見てしました。

>1番上のこの行でした
>xlSheets("strSheetName").Select

↑のエラーについてのみ回答させて頂きます。。。

SETしているのは「xlSheet」に対してなので、
末尾に「s」をつけている為にエラーが出ています。

このようにして頂ければエラーは出なくなるはずです。
「xlSheet("strSheetName").Select」


そしてもう一つ、
「"」でstrSheetNameを囲んでいますが、こちらは変数
になっていますので、「"」を外さないと、その文字の
シートがないのでエラーになります。
「xlSheet(strSheetName).Select」


以上、お邪魔いたしました。

【12099】Re:EXCELへの出力・編集
質問  AKG  - 11/10/13(木) 11:10 -

引用なし
パスワード
   ▼ちょっち さん:
>▼AKG さん、よろずや さん
>
>横からすみません。
>通りすがりでこのスレを見てしました。
>
>>1番上のこの行でした
>>xlSheets("strSheetName").Select
>
>↑のエラーについてのみ回答させて頂きます。。。
>
>SETしているのは「xlSheet」に対してなので、
>末尾に「s」をつけている為にエラーが出ています。
>
>このようにして頂ければエラーは出なくなるはずです。
>「xlSheet("strSheetName").Select」
>
>
>そしてもう一つ、
>「"」でstrSheetNameを囲んでいますが、こちらは変数
>になっていますので、「"」を外さないと、その文字の
>シートがないのでエラーになります。
>「xlSheet(strSheetName).Select」
>
>
>以上、お邪魔いたしました

ちょっちさん、ありがとうございます。
初歩的なミスも重ねていました、お恥ずかしいかぎりです。

ご指摘いただいた部分を修正してみましたが、今度は

xlSheet(strSheetName).Select

の部分で

「オブジェクトはこのメソッドまたはプロパティをサポートしていません」
「オブジェクトが必要です」

の表示がでてしまいます。いろいろ試してみたのですが、これはそもそもこの書き方じゃダメということなのでしょうか?

試しに上記部分消してみると編集の処理はされました。(シートが指定できていないのでアクティブなシートのみにですが・・・)

なかなか1からしっかり勉強する間もなく、こういう業務に取り組んでいるので組み方、知識が中途半端で申し訳ありません。

また、アドバイスお願いいたします。

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