Access2010使用。
AccessのクエリからExcelにエクスポートした際、罫線などの体裁を整えて出力したいと思っています。
データは下記のコードでなんとか出るようになりましたが、このコードの中に罫線を引くコードを
入れる方法がどうしてもわかりません。
検索してあれこれ試しましたが「オブジェクトがない」や「サポートしてない」などエラーメッセージ
が出てしまい、VBAの基礎知識がない私にはどうしてもわかりませんでした。
どうかアドバイスお願いいたします。
(クエリ名は Q_ABC とします)
やりたいことは
・データがある行列に格子線を引き、1行目の項目列の下は二重線、外側は太線にしたい。
・行の高さを数値で指定したい。
です。なお、行数はその都度増えます。
また、できれば
印刷する際の設定で用紙を「A3横」で、常に横1ページに入るように縮小率を設定しておきたい
のですが可能でしょうか?
どうぞよろしくお願いします。
Private Sub コマンド0_Click()
Set xlapp = CreateObject("Excel.application")
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim rs As New ADODB.Recordset
Dim objEXCEL As Object
Dim nYLINE As Integer
Dim nXLINE As Integer
Dim nRCNT As Integer
Dim strWORK As String
Set xlApp = CreateObject("Excel.Application")
Set objEXCEL = CreateObject("Excel.Application")
objEXCEL.Visible = True
objEXCEL.Workbooks.Add
objEXCEL.sheets.Add
re.Open "Q_ABC", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'見出しを書き込む
objEXCEL.Range("A1") = "ID"
objEXCEL.Range("B1") = "氏名"
objEXCEL.Range("C1") = "住所"
== 以下T列まで省略 ==
'項目名をセルの中央に
objEXCEL.Range("A1:T1").HoraizontalAlignment = xlHAilignCenterAcrossSelection
Dim yLINE As Integer '行カウンター
yLINE = 2 'ループ処理
While rs.EOF = False
'accessからデータのセット
objEXCEL.Cells(yLINE, "A") = rs.Fields("ID")
objEXCEL.Cells(yLINE, "B") = rs.Fields("氏名")
objEXCEL.Cells(yLINE, "C") = rs.Fields("住所")
== 以下T列まで省略 ==
rs.MoveNext
yLINE = yLINE + 1
Wend
'シートの列幅の自動調整
objEXCEL.Cells.EntireColumn.AutoFit
rs.Close
Set rs = Nothing
End Sub
No.2ベストアンサー
- 回答日時:
>> 印刷する際の設定で用紙を「A3横」で、常に横1ページに入るように縮小率を設定しておきたい
のですが可能でしょうか?
を忘れていました。
Excel の印刷がらみの設定は PageSetup を変更して行います。
' ズーム設定(自動で行うので設定はしない)
objEXCEL.sheets(1).PageSetup.Zoom = False
' ページの高さに合わせる
objEXCEL.sheets(1).PageSetup.FitToPagesTall = False
' ページの幅に合わせる(下記は横のページを1ページで納める設定です)
objEXCEL.sheets(1).PageSetup.FitToPagesWide = 1
' 用紙サイズの設定(A3 サイズ)
' その他の定数については、http://msdn.microsoft.com/ja-jp/library/office/f … を参照
objEXCEL.sheets(1).PageSetup.PaperSize = xlPaperA3
' 印刷方向(横向き設定、縦の場合は xlPortrait)
objEXCEL.sheets(1).PageSetup.Orientation = xlLandscape
hiro-kayuさん、お礼が遅くなってすみませんでした。
なかなかうまくいかなかったのですが、objEXCELの宣言を消して
教えていただいた設定の中の、objEXCELの部分をすべてxlsheetにしたところ
やっと今日うまくいきました。
2回に渡って丁寧な回答ありがとうございました!
これからもこれをいろいろ活用していきたいと思います。
No.1
- 回答日時:
罫線や行の高さは、Range、Cells に対して設定を行います。
罫線の例)
objEXCEL.Range("セル範囲").Borders(罫線の位置).LineStyle = 罫線の種類
objEXCEL.Range("セル範囲").Borders(罫線の位置).Weight = 罫線の太さ
*罫線の位置
Excel.XlBordersIndex.xlEdgeTop(又は 8)
Excel.XlBordersIndex.xlEdgeBottom(又は 9)
Excel.XlBordersIndex.xlEdgeLeft(又は 7)
Excel.XlBordersIndex.xlEdgeRight(又は 10)
*罫線の種類
Excel.XlLineStyle.xlContinuous(又は 1)
Excel.XlLineStyle.xlDash(又は -4115)
Excel.XlLineStyle.xlDashDot(又は 4)
Excel.XlLineStyle.xlDashDotDot(又は 5)
Excel.XlLineStyle.xlDot(又は -4118)
Excel.XlLineStyle.xlDouble(又は -4119)
Excel.XlLineStyle.xlLineStyleNone(又は -4142)
*罫線の太さ
Excel.XlBorderWeight.xlHairline(又は 1)
Excel.XlBorderWeight.xlMedium(又は -4138)
Excel.XlBorderWeight.xlThick(又は 4)
Excel.XlBorderWeight.xlThin(又は 2)
行の高さの例)
*1行目を変更したい場合、A1、B1・・・1行目のセルを指定してあげます。
objEXCEL.Range("A1").RowHeight = 30
列幅の例)------ 質問にはなかったのですが、とりあえず・・・
*1列目を変更したい場合、A1、A2・・・1列目のセルを指定してあげます。
objEXCEL.Range("A1").ColumnWidth = 30
頑張って下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
AccessVBAでExcelを起動し、罫線を引きたいのですが、Exc
Visual Basic(VBA)
-
ACCESS側からEXCELの書式を設定するには?
Visual Basic(VBA)
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
-
4
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
5
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
6
起動時のフォームの大きさ?
Access(アクセス)
-
7
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
-
8
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
9
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
10
Access→Excelへエクスポートすると日付の表示形式が変化する
Excel(エクセル)
-
11
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
12
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
13
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
14
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
15
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
16
アクセスでエクセルに出力する際のファイル名を日付に
その他(Microsoft Office)
-
17
どこにもフォーカスを当てたくない
Access(アクセス)
-
18
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
19
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
20
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの罫線がパワポに貼り...
-
A4用紙を8分割したい
-
Excelにて、ページ毎の外枠に罫...
-
Excel で改ページをしたところ...
-
エクセルファイルを印刷すると...
-
エクセルで罫線の太さを変えて...
-
印刷ページが急に数100ページに...
-
【word】印刷レイアウトでグレ...
-
excel印刷で改頁をする時に罫線...
-
Excel 2007印刷で上の頁の線が出る
-
accessのレポートを20行固定に...
-
エクセルで表に書いた黒の罫線...
-
EXCELの罫線をもっと細くしたい...
-
印刷時、改ページごとの下枠に...
-
エクセルで透明の罫線を引けま...
-
エクセル 突然「点線」?が出...
-
エクセルで 2ページ目の罫線...
-
Word差し込み印刷 ラベルの枠を...
-
[Excel]画面上で表示されても、...
-
迷路の作り方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの罫線がパワポに貼り...
-
A4用紙を8分割したい
-
印刷ページが急に数100ページに...
-
Wordのページ罫線(囲み)の下...
-
Excelにて、ページ毎の外枠に罫...
-
Excel で改ページをしたところ...
-
エクセルで表に書いた黒の罫線...
-
wordで1ページに同じ文章を4つ...
-
エクセル 突然「点線」?が出...
-
[Excel]画面上で表示されても、...
-
EXCELの罫線をもっと細くしたい...
-
excel印刷で改頁をする時に罫線...
-
印刷時、改ページごとの下枠に...
-
Word差し込み印刷 ラベルの枠を...
-
エクセルで罫線の太さを変えて...
-
エクセルファイルを印刷すると...
-
【word】印刷レイアウトでグレ...
-
accessのレポートを20行固定に...
-
ワード文書の枠線をどうしたら...
-
Excel 2007印刷で上の頁の線が出る
おすすめ情報