![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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にエクスポートする時に常に上書きしたい
Excel(エクセル)
-
5
起動時のフォームの大きさ?
Access(アクセス)
-
6
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
7
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
8
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
9
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
-
10
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
11
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
12
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
13
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
14
ACCESSのVBAにてExcelのシートをコピーしたい
その他(データベース)
-
15
Access→Excelへエクスポートすると日付の表示形式が変化する
Excel(エクセル)
-
16
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
17
アクセスでエクセルに出力する際のファイル名を日付に
その他(Microsoft Office)
-
18
Accessの桁区切りについて教えてください。
Access(アクセス)
-
19
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
20
アクセスVBAのMe!と[ ]
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの罫線がパワポに貼り...
-
A4用紙を8分割したい
-
Excelにて、ページ毎の外枠に罫...
-
Excel で改ページをしたところ...
-
印刷ページが急に数100ページに...
-
wordで1ページに同じ文章を4つ...
-
accessのレポートを20行固定に...
-
エクセルファイルを印刷すると...
-
【word】印刷レイアウトでグレ...
-
Word差し込み印刷 ラベルの枠を...
-
[Excel]画面上で表示されても、...
-
エクセル 突然「点線」?が出...
-
AccessからExcelに罫線付で出力...
-
エクセルで罫線の太さを変更
-
エクセルで表に書いた黒の罫線...
-
ワードの表を印刷しない方法
-
印刷時、改ページごとの下枠に...
-
EXCELの罫線をもっと細くしたい...
-
excel印刷で改頁をする時に罫線...
-
縦長表の外枠に太罫線。改ペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの罫線がパワポに貼り...
-
A4用紙を8分割したい
-
印刷ページが急に数100ページに...
-
Wordのページ罫線(囲み)の下...
-
Excelにて、ページ毎の外枠に罫...
-
Excel で改ページをしたところ...
-
エクセルで表に書いた黒の罫線...
-
wordで1ページに同じ文章を4つ...
-
エクセル 突然「点線」?が出...
-
[Excel]画面上で表示されても、...
-
EXCELの罫線をもっと細くしたい...
-
excel印刷で改頁をする時に罫線...
-
印刷時、改ページごとの下枠に...
-
Word差し込み印刷 ラベルの枠を...
-
エクセルで罫線の太さを変えて...
-
エクセルファイルを印刷すると...
-
【word】印刷レイアウトでグレ...
-
accessのレポートを20行固定に...
-
ワード文書の枠線をどうしたら...
-
Excel 2007印刷で上の頁の線が出る
おすすめ情報