🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

1913閲覧

Access VBA Access 再表示

Yoshikun_0945

総合スコア224

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2019/12/09 09:23

編集2019/12/09 09:35

##使用ソフト・プログラミング言語

前提・実現したいこと

Access VBAにてExcelを起動して、Excelを操作し、Excelを保存して閉じた後に、元のAccessを画面に表示するにはどうすればよろしいでしょうか?

発生している問題・エラーメッセージ

Access VBAにてExcelを終了すると、手動でタスクバーにあるAccessアイコンをクリックして処理中のAccessを画面に表示しないと次の処理に進まないため困っています。

該当のソースコード

Dim AppObj As Object 'Excel.Applicationオブジェクトの宣言 Dim WBObj As Object 'Excel.Workbookオブジェクトの宣言 Dim WsObj As Object 'Excel.WorkSheetオブジェクトの宣言 Dim Path, Exf, Str As String Dim i, j, k, ken, t As Integer: i = 1: j = 1: ken = 1 'Excelファイルのパスを指定 Path = "C:\Users\" '※ Excelファイルが使用するAccessファイルと同じフォルダにある場合の表記 Exf = Dir(Path & "*.xlsx") For t = 22 To 29 If Toggle(t) = True Then '実行時バインディング Set AppObj = CreateObject("Excel.Application") '編集を実施するワークブックを開く Set WBObj = AppObj.WorkBooks.Open(Path & Exf) '編集を実施するワークシートを設定する Set WsObj = WBObj.Worksheets(1) 'Excelアプリケーションを表示しない AppObj.Visible = True '参照する行を1行目とする i = 1 'ファイル番号で分岐する If ken = 1 Or ken = 3 Or ken = 5 Then '右端の列番号を4とする j = 4 Else '右端の列番号を6とする j = 6 End If '現在の行のA列に値があるあいだ処理する Do While WsObj.cells(i, 1).Value <> "" WsObj.cells(i, 1).Activate '行単位で処理を実行する With WsObj.Range(WsObj.cells(i, 1), WsObj.cells(i, j)).Font 'フォントを変更する .Name = "MS Pゴシック" '文字サイズを変更する .Size = 16 '文字列を太字にする .Bold = True '文字色を変更する .Color = RGB(0, 0, 0) End With Const xlCenter = -4108 'エクセルの定数を宣言 WsObj.Range(WsObj.cells(i, 1), WsObj.cells(i, j)).VerticalAlignment = xlCenter WsObj.Range(WsObj.cells(i, 1), WsObj.cells(i, j)).HorizontalAlignment = xlCenter '次の行に移動する i = i + 1 Loop '一覧ファイルだけ処理する If ken = 2 Or ken = 4 Or ken = 6 Then 'オートフィルターを設定する WsObj.Range(WsObj.cells(1, 3), WsObj.cells(i - 1, 5)).AutoFilter End If '全列に適用する For k = 1 To j WsObj.Columns(k).AutoFit '列幅を調整する Next 'Excelを保存して閉じる WBObj.Save 'ワークブックを保存する WBObj.Close 'ワークブックを閉じる 'アプリを終了する AppObj.Quit MsgBox "『" & Exf & "』の書式設定が完了しました。", vbOKOnly + vbInformation End If '次のファイル名を取得する Exf = Dir() '件数を加算する ken = ken + 1 Next MsgBox "書式設定が完了しました。", vbOKOnly + vbInformation

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Access VBAにてExcelを終了すると、手動でタスクバーにあるAccessアイコンをクリックして処理中のAccessを画面に表示しないと次の処理に進まないため困っています。

下記のどちらかを実行してください。

vba

1Docmd.RunCommand acCmdAppMaximize 'Accessを最大化 2 3Docmd.RunCommand acCmdAppRestore 'Accessを元のサイズにもどす

投稿2019/12/09 10:51

hatena19

総合スコア34073

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問