
AccessVBAでExcelを起動し、罫線を引きたいのですが、ExcelVBAの罫線を引く関数をAccessVBAで記述するとエラーになります。どういう記述をすればよいのでしょうか?
(例)
以下の様にすると、例えば「xlNone」は宣言されていない等のエラーになります。
(ちなみに、Excelの起動と値の入力はできています)
Range("A4:C6").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
No.2ベストアンサー
- 回答日時:
RangeとかxlDiagonalDownはExcelのVBA環境だから
使えるオブジェクトや定数です。Access環境では使用
できません。
Excelを他のアプリケーションからCOMモデルで使用
する場合を考えると、以下の構造になります。
Application
Workbooks
Workbook
WorkSheets
WorkSheet
Cells
Range
従って、Excelでやる時のようにRangeを単独で指定
できません。(Excelの時でも、所属を明確にすべき)
解決方法(一例)は以下の通り。
(1)参照設定に「Microsoft Excel x.x Object Library」を追加
x.xはバージョン
(2)全てのExcelオブジェクトはApplicationから明示的に指定する
Dim A As Excel.Application
Dim B As Excel.Workbook
Dim S As Excel.WorkSheet
Dim R As Excel.Range
Set A = New Excel.Application
Set B = A.Workbooks("hoge.xls")
Set S = B.WorkSheets("Sheet1")
Set R = S.Range("A4:C6")
(3)できればSelectionを使わない
Selection.Borders → R.Borders
尚、Excel固有の定数は参照設定を追加することで使用可能になります。
nda23さん
参照設定すればよかったのですね!
それと「ExcelオブジェクトはApplicationから明示的に指定する」は必須でした。
ご回答どうもありがとうございました。
No.1
- 回答日時:
>例えば「xlNone」は宣言されていない等のエラーになります。
組み込み定数の変わりに数値で指定すればどうでしょうか(未確認ですが)
>Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = -4142
または
Selection.Borders(5).LineStyle = -4142
watabe007さん:
全部数値にしたらできました!! v(^ ^)/
なので関数内に、Const xlAutomatic = -4105 のように全部宣言することにしました。
どうもありがとうございました。 助かりました。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
AccessからExcelに罫線付で出力したい
Excel(エクセル)
-
ACCESS側からEXCELの書式を設定するには?
Visual Basic(VBA)
-
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
-
4
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
-
5
アクセスvbaでエクセルブックを保存
その他(Microsoft Office)
-
6
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
7
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
8
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
9
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
10
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
11
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
12
ACCESSのVBAにてExcelのシートをコピーしたい
その他(データベース)
-
13
Access サブフォームでの選択行の取得
その他(データベース)
-
14
Access→Excelへエクスポートすると日付の表示形式が変化する
Excel(エクセル)
-
15
Access VBAからExcelシートの削除
Excel(エクセル)
-
16
ACCESSVBA からExcelの他ブックへコピーの方法
Visual Basic(VBA)
-
17
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
18
クエリのデータをテーブルに入れたい
Access(アクセス)
-
19
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
20
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
マクロについて教えてください...
-
【Excel VBA】マクロをボタンに...
-
【マクロ】エラー【#DIV/0!】が...
-
Outlook.ApplicationをCreateOb...
-
実行時エラー48発生時のDLL特定...
-
VBAがブレークモードになっ...
-
VBAで、定数式が必要ですのエラ...
-
「定数式が必要です。」って何...
-
一般ODBCエラーについて
-
VBAでESCキーを無効にしたいの...
-
日本語環境下で作成したマクロ...
-
[Delphi] データセットは閉じて...
-
【エクセル】ハイパーリンク先...
-
実行時エラー -'-2147417848
-
なぜエラーになるのでしょうか...
-
ExcelVBA Range クラスの Page...
-
エラー1004 PDFの保存ができま...
-
VBAのエラー発生場所をメッセー...
-
VBAのコードがエラーになっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
実行時エラー48発生時のDLL特定...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー3001「引数が間違...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAのエラー発生場所をメッセー...
-
ADODB.Streamを使用してUTF-8を...
-
【Excel VBA】マクロをボタンに...
-
OLEDB.NETで接続できない
-
なぜエラーになるのでしょうか...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
おすすめ情報