• ベストアンサー

エクセルの自動更新

1・現在、エクセルの「会員名簿.xls」を開きますと、アクセスの「顧客管理.mdb]の最新データーで、エクセルの「会員名簿.xls」が自動的に更新されるように設定してあります。 2・出来れば、その都度エクセルの「会員名簿.xls」を開かないで、下記のような時点で、エクセルの「会員名簿.xls」を、マクロなどで更新(「会員名簿.xls」を開いた時と同じ状態)出来ないかと考えております。 (A).アクセスの「顧客管理.mdb]を閉じる時点。 (B).アクセスの「顧客管理.mdb]は、閉じる前に必ず初期化ボタンをクリックする設定になっていますのでその時点。 アクセスの知識は皆無ですので、宜しく御願いいたします。

  • oguno
  • お礼率61% (179/289)

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >エクセルの「会員名簿.xls」が自動的に更新されるように設定 http://oshiete1.goo.ne.jp/qa3342564.html こちらを、どのように対応したのか、そのままになっているので分かりませんが、仮に、その話を生かして、Excelの外部データの取り込みのインポートが出来ているという前提としています。 そうすると、Accessから、Excelのそのブックを呼び出しすれば、インポートされませんか?ただ、それでは、あまり、利口な方法とはいえないので、自動更新をやめて、Book を、呼び出して、QueryTable でインポートさせればよいと思うのです。実際には、ブックは開いているのかは分かりませんので、正常に終わったら、「正常終了」のメッセージを出してみました。 以下は、ものすごく簡単なサンプルを作ってみました。 なお、Excelのデータの取り込みの左上端の部分が、以下の場合は、Sheet1 の A1になっています。ただ、私には、Accessでも、Excelでも、どちらでも同じような気がします。それに、Excelは開いた時に、更新してくれるのだから、便利だと思います。 '設置:Access Formモジュール等 Dim xlApp As Object Dim xlBook As Object Const FNAME As String = "C:\TestBook.xls" On Error GoTo ErrHandler Set xlApp = CreateObject("Excel.Application") With xlApp   .Visible = False Set xlBook = .WorkBooks.Open(FNAME)   xlBook.Worksheets("Sheet1").Range("A1").QueryTable.Refresh   xlBook.Close True   .Quit End With ErrHandler: If Err.Number > 0 Then  MsgBox Err.Description Else  MsgBox "正常終了", vbInformation End If Set xlBook = Nothing Set xlApp = Nothing

oguno
質問者

お礼

Wendy02様 非常識な御願いをしてしまい御詫び申し上げます。 質問を締め切らせて頂くにあたり、ポイントを付与させていただきま す。 心情御賢察の上、御容赦下さい。 今後も御指導頂くことが、多々あると思いますが、宜しく御願いいたし ます。 oguno

oguno
質問者

補足

Wendy02様 要領の得ない質問にもかかわらず、いつも御指導頂き、本当に有難う御座います。 今回も、御丁寧な御指導を参考に試行錯誤しながら、トライしました。 その結果を記述いたしますので、お手数ですが御一読いただければ幸いです。 ●試行錯誤の結果を記述致します。 (1)・アクセスの「コマンドボタンウィザード」を、使用しましたら 下記のマクロが出来ました。(トライしましたら偶然出来ました。) Private Sub 会員名簿更新_Click() On Error GoTo Err_会員名簿更新_Click Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.Workbooks.Open "C:\Documents and Settings\xxxxx \My Documents\xxxxx\会員名簿.xls" 'Only XL 97 supports UserControl Property On Error Resume Next oApp.UserControl = True Exit_会員名簿更新_Click: Exit Sub Err_会員名簿更新_Click: MsgBox Err.Description Resume Exit_会員名簿更新_Click End Sub (2)・上記(1)・のマクロを下記のように修正しました。 Private Sub コマンド12_Click()  ← 初期化マクロ Dim exl As Object Set exl = CreateObject("Excel.Application") exl.Visible = True exl.Workbooks.Open "C:\Documents and Settings\xxxx \My Documents\xxxx\会員名簿.xls" exl.Quit Set exl = Nothing 既存の処理 ← 初期化マクロ end Sub ●(2)・のようにしましたら、偶然、「会員名簿.xls」が開き、更新さ れ、保存の有無を選択するメッセージが表示されました。 保存し閉じますと、「会員名簿.xls」を使用するその後のエクセルの操 作が思い通り出来ます。 ただ、たマクロの記述が、これで正しいのかどうか判断がつきません。 ●ご指摘の下記質問に御回答いただきました方は、「目的の結果が得ら れていれば、マクロ記述は間違っていません。」と言っていただきまし たが、今でも本当に大丈夫なのか、自身信じられない状態です。 http://oshiete1.goo.ne.jp/qa3342564.html​ 勝手な御願いでは御座いますが、下記2点について御指導頂きたく御願い申し上げます。 1・(2)・のマクロが正しいのかどうか。 2・御手数ですが、構文の説明を御願い出来ないでしょうか。 ●試行錯誤の上、偶然とはいえ、自分で記述しましたマクロの 成否・解説を御願いしますのは、道理に外れていますのは、 重々承知しておりますが、伏して御願い申し上げます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

●なぜ現状で困るのか不可解。 ●現状の >エクセルの「会員名簿.xls」を開きますと、アクセスの「顧客管理.mdb]の最新データーで、エクセルの「会員名簿.xls」が自動的に更新されるように設定してあります。 は質問のことが行われているのではないですか。>開きますとの機会に、エクセル側で何かしている(例えばVBAプログラムが動く)という確証はありますか。 ●>アクセスの知識は皆無ですので でありながら、なぜ、多分アクセスVBAでしかできない高度のことを回答要求するのですか。 現状を作った方に改良を頼むのが筋では。 この質問コーナーはシステム課題を丸投げする場でないはず。

oguno
質問者

お礼

imogasi様 ご忠告ありがとうございました。

関連するQ&A

  • Excel → Access データをインポート

    OS WinXP Pro SP2 Office 2000 SP3 はじめまして。 マクロ(Excel VBA)を記述しているExcelファイル(Xls_Macro.xls)とインポート用データのExcelファイル(Xls_Data.xls)は別々のファイルになっていて、マクロを実行するとExcelファイルとインポート用データのExcelファイルのデータをAccessファイル(Access.mdb)にインポートする仕組みを開発しています。 インポート用データのExcelファイル(Xls_Data.xls)をADOで接続しレコードセットでデータを取得し、Accessファイル(Access.mdb)もADOで接続しレコードセットの「.AddNew」でAccessファイル(Access.mdb)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。

  • エクセルで一枚のシートに入力したものを自動分割するには?

    エクセルで顧客名簿をつくっています。担当者は5名ほどで担当名もそのつど入力しております。日付順に毎日入力していますが月末に担当者ごとのシートを自動的に作成できるようなマクロはないでしょうか?

  • EXCELでシートを自動作成し、入力する。

    いつも参考にさせて頂いております。 とても初歩的な質問ですが教えていただけないでしょうか? Accessに人物名簿のデータベースがあります。 人物をある条件で検索し、検索にヒットした人物の情報を名簿.csvへ書き出すという作業をVBAで行いました。 検索をかける度に名簿.csvの内容は更新されます。 ここからなのですが、 Excelに下のような名簿のシートを作成しました。(名簿.xls) ―――――――――――――――――――――――――    氏名:  生年月日:        住所:   Tell:         Fax:   会社名:   会社Tell:   会社Fax: ――――――――――――――――――――――――― (実際にはもっと沢山の項目があり、レイアウトも複雑ですが、簡略しています。) 名簿.xlsを開いた時、もしくは名簿.csvを更新した時点で名簿.xlsに名簿.csvの内容を書き込みたいのですが、 (1)検索にヒットした人物が複数いる事がほとんどなので、このシートを人数分コピーしたい。 (2)そもそもどうすればこのシートにCSVファイルの内容を書き込めるのでしょうか? よろしくご教授の程、お願い致します。

  • アクセスはブックに代わる言葉はありますか?

    エクセルの場合、ファイルの事を「ブック」と呼びますが アクセスはブックに代わる言葉はありますか? 例えば「共有フォルダの中にある顧客管理.MDBという○○を開いてください」 と言いたい時に、○○に入る言葉を探しています。 「共有フォルダの中にある顧客管理.MDBを開いてください」 でも意味は伝わりますが、そこに入る言葉があるのなら知りたいです。 エクセルなら 「共有フォルダの中にある顧客管理.xlsというブックを開いてください」 で意味が通じますよね。 よろしくお願い致します。

  • エクセルとアクセス

    過去の質問内容にも類似したものがあったのですが、アドバイス願います。 現在エクセル作成された会員名簿のようなものを利用しています。名簿ですので住所、氏名などなど一般的な項目と、いつの入会か、いつの退会か(現会員のみでなく永久保存となっているため、亡くなった会員も名簿には残っています。)など、また会費の納入状況も掲載しています。そのデータを基に未納者の洗い出しや、会費の請求書発行などをし利用しています。 ただ、項目も多いし、データを更新する者がたくさん居るため、おっちょこちょいの者が更新してしまうと段をずれて変更したりすることもあり・・・ほとほと困っています。印刷してのチェックに疲れています。そうすると、データベース化してカード形式の入力とするとそのページ(画面)はその会員の情報のみが表示されているということなので入力ミスが防げるのではないかと考えたわけです。エクセルだとその都度、加工していろんなレポートを出力しているのですが、アクセスだとその都度の加工が必要ないですよね?たぶん・・・ ・・・・というわけで、結局の質問は、『現在のエクセルデータをアクセスにそのまま移すことができるのか』ということです。 また、『この作業(アクセスの構築)を外注するといくらくらいかかるのでしょうか?』という2点です。 アクセスの知識がほとんどないので、お馬鹿な質問をしているかもしれませんが、お時間のある方・・よろしくお願いいたします。

  • VBAでデータ更新作業自動化

    エクセルで、シート1に顧客データ(会員番号、氏名、住所等)が有り、シート2の入力セルに会員番号を入力すると、シート1の顧客データがVLOOKUP関数により呼び出されるというエクセルファイルがあります。シート1の顧客データは、別システムでデータ更新しており、USBメモリにCSVファイルとして定期的に抽出しています。このCSVファイルのシート1の最新顧客データを元のエクセルファイルのシート1にすべてコピー&ペーストすることで最新の顧客データを更新しています。 このたび、その作業の自動化を図るにあたり、元のエクセルファイルのシート2で作成したボタンを押下することにより、自動実行したいのです。 お忙しいところ大変申し訳ないですが、そのような他ファイルに及ぶVBAの記述を教えていただけたらありがたいです。よろしくお願いします。

  • access 更新ボタンを作る

    よろしくお願いします。 仕様環境 WinXP access2002 今、accessで顧客管理システムを作っているのですが、 フォームに情報を入力したら「更新ボタン」押して、 情報を更新できるようにしています。 「更新ボタン」はマクロで”最新の情報に更新”を使い できたのですが、ボタンを押したときに何のリアクションもないので 気になります。(しっかり更新(保存)はされてますけど。) そこで質問なのですが、「更新ボタン」を押したときに 「更新しますか? ”はい””いいえ”」と確認の意味でも 選べるようにしたいのですがどうすればよいでしょう? MsgBox関数を使うとよいとみたいなのですが、 「更新しました、”OK”」とは出ますが、「~しますか?”はい””いいえ”」のように 選択する画面の出し方がわかりません。 もし、マクロでそのような方法がありましたら教えてください。 よろしくお願いします。

  • アクセスの住所録をエクセルで会員名簿として使用したい。

    現在、アクセスで会員登録をしています。 御指導いただきたき事 1・アクセスで登録した、会員番号・氏名・住所・電話番号等をエクセルで、「会員名簿」として使用したい。 2・アクセスを終了すると同時に、エクセルの「会員名簿」を更新する。 宜しくお願い致します。

  • VBAでエクセルからエクセルのファイルを開くには?

    D:\に db1.mdb Book1.xls があります。 db1.mdbのフォームのコマンドボタンをクリックして Book1.xlsを開きたいのですが VBAコードをご教授いただけますか? (マクロではなくVBAコードが知りたいです) エクセルからエクセルのファイルを開くなら Workbooks.Open ファイルのフルパス で出来ました。 ご回答よろしくお願いします。

  • アクセスのデータをエクセルで編集したい

    アクセスのデータをエクセルで開き、データを更新したいのですが、 可能でしょうか? VBAやマクロを使えば可能ですが、視覚的に操作したいので、エクセル からmdbへリンクを作成するようなイメージです。

専門家に質問してみよう