忙しい現代人の腰&肩のお悩み対策!

タイトルのとおり、VBAでAccess2003からExcel2003のセルフォーマットを変更しようとしていますが、Excel上のVBAで利用できるWorksheet-Range-Selectやその他いくつかのメソッドが、Accessからは利用できません(Accessでは"Microsoft Excel 11.0 Object Library"を参照しています)

実現したいのは、AccessからExcelのセルの結合をすること・書式(文字列、日付等)を変更することなのですが、これらのメソッドを利用できないとなると、ほかに方法が思いつきません。

もしご存知でしたらお教えいただければ幸いです。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

> Excel上のVBAで利用できるWorksheet-Range-Selectやその他いくつかのメソッドが、


> Accessからは利用できません

使えます。が、Access(など他のアプリ)から使う場合は、Application オブジェクト
から参照する必要があります。

コード例としては、

Visual Basic を使用して Microsoft Excel を自動化する方法
http://support.microsoft.com/kb/219151/ja

こちらが参考になると思います。
また、以下についても参照してください。

ダウンロード センターで入手可能な Microsoft Office 2000 オートメーションのヘルプ ファイル
http://support.microsoft.com/kb/260410/ja
    • good
    • 1
この回答へのお礼

Applicationオブジェクトからの参照なのですね。MSのリンクも大変有用です。有難うございました。大変助かりました。

お礼日時:2006/07/12 00:03

#1>selectメソッドのところでエラーが出ます。

メッセージは「このメソッドは、このオブジェクトではサポートされていない」というようなものです。
関連する部分で、こちらでテストをしてみることができるようなソースを補足していただけますか?
    • good
    • 0
この回答へのお礼

解決しましたのでソースをお渡しするのは見合わせますが、お申し出ありがとうございました。

お礼日時:2006/07/12 00:10

>実現したいのは、AccessからExcelのセルの結合をすること・書式(文字列、日付等)を変更することなのですが、これらのメソッドを利用できないとなると、ほかに方法が思いつきません。



私も、2,3日前似たような質問を出しました。
その時教えてもらった回答で記述した一部を下記に記述します。
私はこれで書式変更、上手くいってます。
参考になればよいですが・・・。(参考にならなかったらごめんなさい。)


Dim xls As Object
Set xls = CreateObject("Excel.Sheet")

xls.Application.Columns("A:O").NumberFormatLocal = "@"
xls.Application.Columns("Q:S").NumberFormatLocal = "@"
xls.Application.Columns("W:W").NumberFormatLocal = "\#,##0;\-#,##0"

xls.Application.Quit
Set xls = Nothing
    • good
    • 0
この回答へのお礼

試してみましたが、確かに使えそうです。ありがとうございました。
いろいろな書き方があるのですね。勉強になりました。

お礼日時:2006/07/12 00:08

私は2002ユーザなので2003について確かなことは言えませんけど、


>Excel上のVBAで利用できるWorksheet-Range-Selectやその他いくつかのメソッドが、Accessからは利用できません
は、何かの勘違いだと思います。
表示からオブジェクトブラウザでライブラリにExcelを選べば、使えるメソッドが確認できます。
おそらく、画面上でメソッドなどが補完されない場合があるのでそれでそう思ったのじゃないですか。
補完がされない場合でも、オブジェクトに応じたメソッドを記述すれば、ちゃんと動作するはずです。

この回答への補足

アドバイスありがとうございます。
ご指摘に関してですが、補完されないだけでなく、selectメソッド直前にブレイクポイントを打って、そこからF8で一行ずつ実行していくと、selectメソッドのところでエラーが出ます。メッセージは「このメソッドは、このオブジェクトではサポートされていない」というようなものです。
補完されないのでスペルを間違えたかと思い、Excelで作成したマクロをコピペしても同じエラーが表示されます。

ちなみに、Rangeで範囲指定後、セルに直接値を放り込むことは可能です。そのため、表示されるエラーメッセージのとおり、Rangeの特定のメソッドが使えないのではないかと思いました。

他に思い当たることがあればお知らせ下さい。

補足日時:2006/07/11 04:43
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESS側からEXCELの書式を設定するには?

ACCESSからEXCELにエクスポートした際、ACCESS側でEXCELの書式設定は行えますか?(例:セルAの幅がX桁等)

データ件数が多すぎて、下記VBでエクスポート処理をしています。

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

お手数ですが、ご教授願います。

Aベストアンサー

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
xlApp.Cells.EntireColumn.AutoFit
xlApp.Range("A1").Select
xlApp.Visible = False

xlApp.Quit

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

Exit_Cmd1_Click:
Exit Sub

Err_Cmd1_Click:
MsgBox Err.Description
Resume Exit_Cmd1_Click

End Sub

こんな感じで記述してください。

#1の中でxlApp.DisplayAlerts = False これは除いてください。保存しますかのメッセージが出ます。

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
...続きを読む

QAccess-VBAでExcelファイルを作成する。

こんにちわお世話になります。

「Excelにエクスポート」ボタンをクリックすると、Inputboxか何かが表示されて、Pathやファイル名やシート名を入力し、「実行」ボタンを押すと、新規にExcelのBookを、そのPath、ファイル名、シート名で作成する。その後、そのシートにデータを書き込むという作業をしたいのです。
AccessのデータをExcelの任意のシートを開いて書き込むという部分のVBAコードはわかりますので、新規Book作成部分のコードがわかるかたお願いします。
Office97を使用しています。

Aベストアンサー

プロジェクト→参照設定でMicrosoft Excel *.* ObjectLibraryにチェックを入
れて下さい。

オブジェクトへの参照を格納する変数を事前バインディング。
変数にオブジェクトの参照を代入します。Addメソッドを使って新規workbookと
worksheet オブジェクトを作成します。
値を代入し名前を付けて保存してオブジェクトを開放する。という流れで良いと
思います。

Private Sub Command1_Click()

  On Error Resume Next

  Dim xlApp  As Excel.Application
  Dim xlBook As Excel.Workbook
  Dim xlSheet As Excel.Worksheet

  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Add
  Set xlSheet = xlBook.Worksheets(1)

  ' Excel のセルに値を代入します。
  xlSheet.Cells(1, 1).Value = " "

  ' Worksheet を名前をつけて保存します。ダイアグボックス等を使用して
   パスやBook名など入力できるようにしてもOKです。
  xlSheet.SaveAs "c:\Temp.xls"

  xlApp.Quit

  Set xlSheet = Nothing
  Set xlBook = Nothing
  Set xlApp = Nothing
End Sub

こんな感じでしょうか。

プロジェクト→参照設定でMicrosoft Excel *.* ObjectLibraryにチェックを入
れて下さい。

オブジェクトへの参照を格納する変数を事前バインディング。
変数にオブジェクトの参照を代入します。Addメソッドを使って新規workbookと
worksheet オブジェクトを作成します。
値を代入し名前を付けて保存してオブジェクトを開放する。という流れで良いと
思います。

Private Sub Command1_Click()

  On Error Resume Next

  Dim xlApp  As Excel.Application
  Dim xlBook As Excel.Workbook
...続きを読む

QAccessからExcelの出力について

お世話になります。

AccessのテーブルデータをExcelへ出力をしたいのですが可能でしょうか?
詳細は、既存のExcelのファイルのセルを指定し、罫線を描いたり、データ型を指定したり、フォント、文字サイズ、セルの背景色、ヘッダーの指定、印刷時の用紙サイズ、印刷時の余白の設定なのですがAccessから操作できますでしょうか?

宜しくお願い致します。

Aベストアンサー

>コンパイルエラー:修飾子が不正です。
失礼しました。ざっと書いたものでSheetの宣言が一つ抜けてました。
Dim xlSheet As Excel.Worksheet
を追加してください。
Dim objExcelApp As Workbook
Dim strExcelFile As String
Dim strExcelSheet As String
Dim xlSheet As Excel.Worksheet '←追加
そして記述中の宣言以外の部分で使っているstrExcelSheet.Cells(1, 1).Value = "12"の部分から以下のstrExcelSheet.をxlSheet.に置き換えてください。
xlSheet.Cells(1, 1).Value = "12" のように。
VBEの編集の置換で簡単に出来ますので。

>データ型の指定・セルの背景色ヘッダーの指定の操作方法
Range("A1").Select
With Selection.Interior
.ColorIndex = 5 'ExcelのカラーNoの数字で指定
.Pattern = xlSolid
End With

ヘッダはWith xlSheet.PageSetupの中で
.LeftHeader = ""
.CenterHeader = "&""MS Pゴシック,太字""&16ヘッダ名"
.RightHeader = ""
で指定できます。上記は中ヘッダにゴシック太字ヘッダ名を指定。フッタは同様に下記で指定。
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""

Range("A19").Select
Selection.NumberFormatLocal = "\#,##0;\-#,##0;\0"
日付なら  = "yyyy/mm/dd;@" のように指定。

>コンパイルエラー:修飾子が不正です。
失礼しました。ざっと書いたものでSheetの宣言が一つ抜けてました。
Dim xlSheet As Excel.Worksheet
を追加してください。
Dim objExcelApp As Workbook
Dim strExcelFile As String
Dim strExcelSheet As String
Dim xlSheet As Excel.Worksheet '←追加
そして記述中の宣言以外の部分で使っているstrExcelSheet.Cells(1, 1).Value = "12"の部分から以下のstrExcelSheet.をxlSheet.に置き換えてください。
xlSheet.Cells(1, 1).Value = "12" のように。
VBE...続きを読む

Qアクセスからエクセルのシートを追加して、名前をつける方法

アクセス2000で、ある所定の条件を満たした時に、規定の場所にあるエクセルファイルの先頭から2番目に空のワークシートを追加し、そのシート名を変数に格納されている値でリネームしようとしております。結構急務なんですが、excel.application~等使っても出来ませんでした・・・。プロフェッショナルな方、誰か方法を教えていただけないでしょうか?よろしくお願いします。

Aベストアンサー

こんにちは。

急ぎということで、取り急ぎで作ったコードです。目的の処理以外は一切おこなっていませんので、カスタマイズしてください。

また、処理速度の点で実行時バインドではなく、参照設定を予め行って下さい。


Option Compare Database

'要参照設定:Microsft Excel x.x Object Library
Sub AddXLWorksheet()

  Dim xlApp As Excel.Application
  Dim WB As Excel.Workbook
  Dim SH As Excel.Worksheet
  Dim strXLfile as stirng

  strXLfile = "C:\TEST.xls" 'Excelブックフルパス

  Set xlApp = Excel.Application
  With xlApp
    .Visible = True
    Set WB = .Workbooks.Open(strXLfile)
    'シートを3番目に追加
    Set SH = .Worksheets.Add(After:=WB.Worksheets(2))
    'シート命名
    SH.Name = "aaaaa" 'ここを変数で渡せば良い
  End With

  Set SH = Nothing
  Set WB = Nothing
  Set xlApp = Nothing

End Sub

こんにちは。

急ぎということで、取り急ぎで作ったコードです。目的の処理以外は一切おこなっていませんので、カスタマイズしてください。

また、処理速度の点で実行時バインドではなく、参照設定を予め行って下さい。


Option Compare Database

'要参照設定:Microsft Excel x.x Object Library
Sub AddXLWorksheet()

  Dim xlApp As Excel.Application
  Dim WB As Excel.Workbook
  Dim SH As Excel.Worksheet
  Dim strXLfile as stirng

  strXLfile = "C:\TEST.xls" 'Excel...続きを読む

QAccessからExcelに罫線付で出力したい

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

Access2010使用。

AccessのクエリからExcelにエクスポートした際、罫線などの体裁を整えて出力したいと思っています。

データは下記のコードでなんとか出るようになりましたが、このコードの中に罫線を引くコードを
入れる方法がどうしてもわかりません。

検索してあれこれ試しましたが「オブジェクトがない」や「サポートしてない」などエラーメッセージ
が出てしまい、VBAの基礎知識がない私にはどうしてもわかりませんでした。
どうかアドバイスお願いいたします。
(クエリ名は Q_ABC とします)

や...続きを読む

Aベストアンサー

>> 印刷する際の設定で用紙を「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/ff834612.aspx を参照
  objEXCEL.sheets(1).PageSetup.PaperSize = xlPaperA3
  ' 印刷方向(横向き設定、縦の場合は xlPortrait)
  objEXCEL.sheets(1).PageSetup.Orientation = xlLandscape

>> 印刷する際の設定で用紙を「A3横」で、常に横1ページに入るように縮小率を設定しておきたい
のですが可能でしょうか?

を忘れていました。

Excel の印刷がらみの設定は PageSetup を変更して行います。

  ' ズーム設定(自動で行うので設定はしない)
  objEXCEL.sheets(1).PageSetup.Zoom = False
  ' ページの高さに合わせる
  objEXCEL.sheets(1).PageSetup.FitToPagesTall = False
  ' ページの幅に合わせる(下記は横のページを1ページで納める設定です)
  objEXCEL.sheets(1).PageSet...続きを読む

QAccessVBAから、Excelシート内の列の書式設定がしたい!!

とうとう朝になってしまいました。
もう丸2日間も悩んでいます。
どなたか解決方法をご存知の方、よろしくお願いいたします。

AccessVBA内のモジュールからExcelファイルを開いて、そこへデータを出力するという処理は動きます。
そこで、出力する前に、Excelのセルの書式設定を列毎にしようとしていますが、どうしても上手くいきません。

下記のような感じでは、使えないのでしょうか?

Set xls = GetObject("c:AAA\TEST.xls")
xls.Application.Windows(1).Visible = True
xls.Application.worksheets("sheet1").Activate
xls.Application.worksheets("sheet1").RANGE("A:A").Selection.NumberFormatLocal = "\#,##0;\-#,##0"

なにか良い方法がありましたら教えてください!!
よろしくお願い致します。

Aベストアンサー

No1さんの回答の
xlApp.cells(1, 1).NumberFormat = "$#,##0;$-#,##0"

xlApp.Columns("A:A").NumberFormatLocal = "\#,##0;\-#,##0"
したらどうでしょ

QAccessVBAでExcelを起動し、罫線を引きたいのですが、Exc

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

Aベストアンサー

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固有の定数は参照設定を追加することで使用可能になります。

RangeとかxlDiagonalDownはExcelのVBA環境だから
使えるオブジェクトや定数です。Access環境では使用
できません。
Excelを他のアプリケーションからCOMモデルで使用
する場合を考えると、以下の構造になります。
Application
 Workbooks
  Workbook
   WorkSheets
    WorkSheet
     Cells
      Range

従って、Excelでやる時のようにRangeを単独で指定
できません。(Excelの時でも、所属を明確にすべき)
解決方法(一例)は以下の通り。
(1)参照設定に「Microsoft Excel x.x Object Li...続きを読む

QACCESSからexcelブックを開いて保存したい

ACCESS初心者です。
仕事でどうしても必要に迫られて、受付管理のツールを作ることになりました。


1つの注文で、受付ID(オートナンバー)が付与されます。

メインフォームにタブオーダーをつけてサブフォームを複数配置しています。
そのサブフォームにボタンを置いて
Access から既存のエクセルファイルをテンプレートとして開いて
テンプレートに入力後、受付IDをファイル名にして、テンプレートとは別もので保存
保存後は、ボタンを押したときに受付IDと同じエクセルファイルが開く

このようなことをやりたいと思っています。

ネットでいろいろ探しているのですが
ファイルを開くのは見つかっても、保存したものを開くのが見つからず
そもそもできるのかどうかもわかっておりません。

自分にスキルがなく、あれこれ凝ったものは作れないので、
保存は自動じゃなくて、自分で別名で保存にしてもかまわないのですし
フォームに入力したものが、テンプレートに反映(出力?)されなくてもかまわないです。


参考になるサイト等ありましたら、ご教示いただけますか。

どうぞよろしくお願いいたします。


下記はやりたいことに近いかなと思って見つけたサイトです。
http://www.nurs.or.jp/~ppoy/access/access/acX013.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1220895032
http://accessclub.jp/bbs/0227/beginers70136.html

ACCESS初心者です。
仕事でどうしても必要に迫られて、受付管理のツールを作ることになりました。


1つの注文で、受付ID(オートナンバー)が付与されます。

メインフォームにタブオーダーをつけてサブフォームを複数配置しています。
そのサブフォームにボタンを置いて
Access から既存のエクセルファイルをテンプレートとして開いて
テンプレートに入力後、受付IDをファイル名にして、テンプレートとは別もので保存
保存後は、ボタンを押したときに受付IDと同じエクセルファイルが開く

このよう...続きを読む

Aベストアンサー

1番目のリンクの方のサイト、すごいですね。テクニカルかつ分かりやすいです。
同じ方のサイト、#001ではEXCELファイルを新規に作って、データベース内のデータを埋めて保存して閉じる
やり方を紹介しています。
http://www.nurs.or.jp/~ppoy/access/access/acX001.html

リンクの#013では、テンプレートを元にデータを埋め込み、EXCELの画面を表示したところで、マクロを終了させる
(保存はユーザーの手動に任せる)方法を紹介しています。

この#013の最後に#001の保存方法を組み合わせれば、たぶん出来ると思います。

#013の末尾(http://www.nurs.or.jp/~ppoy/access/access/acX013.html)
--------------------------------------------------------------
'データ貼り付け
With wkb.Worksheets(stSheet)
.Range(stRng).CopyFromRecordset Data:=rst
End With

'#001の保存コード(http://www.nurs.or.jp/~ppoy/access/access/acX001.html)

'保存ダイアログからの入力を受けて保存
' fName = xls.Application.GetSaveAsFilename(,"Microsoft Excel(*.xls),*.*", 1)

'保存ダイアログを使わず、fnameを自動的に指定する方法(jacob-wk9付け足し)
fName=rst!受付ID

If fName <> False Then
wkb.SaveAs FileName:=fName
MsgBox "新規ブックは、「" & fName & "」の名前で保存しました!", vbOKOnly
Else
MsgBox "新規ブックは保存できませんでした。", vbOKOnly
End If

Set rst = Nothing: Set cnn = Nothing

Exit_opnXLtmp:
Set wkb = Nothing: Set xls = Nothing
Exit Sub

Err_opnXLtmp:
MsgBox Err.Description
Resume Exit_opnXLtmp
End Sub
----------------------------------------------------------------------

こんな感じになるのではないでしょうか。

1番目のリンクの方のサイト、すごいですね。テクニカルかつ分かりやすいです。
同じ方のサイト、#001ではEXCELファイルを新規に作って、データベース内のデータを埋めて保存して閉じる
やり方を紹介しています。
http://www.nurs.or.jp/~ppoy/access/access/acX001.html

リンクの#013では、テンプレートを元にデータを埋め込み、EXCELの画面を表示したところで、マクロを終了させる
(保存はユーザーの手動に任せる)方法を紹介しています。

この#013の最後に#001の保存方法を組み合わせれば、...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessからExcelファイルのデータ取得

Access2000かExcelファイルのデータを取得したいのですが、
Excelファイルを一度 CSVファイルに変換し、その後Accessのテーブルへデータ取り込み といった手順をとりたいのです。
この方法って、どうコーディングすればいいのですか?
(Accessのインポート処理は使用しない方法です)

Aベストアンサー

VBAの基本的なことはご存知ですか?
でしたら、
1.Accessで対象のExcelファイルを選択
2.AccessからExcelを制御してCSVにコンバート
3.出来たCSVファイルをAccessに取り込む(テキスト取り込み インポート定義を使うと簡単)
この順序で行えばOKです。
ExcelでVBAを書くことで制御する方法もありますが、
Access側からExcelを制御する方がやりやすいと思います。


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング