過去ログ

                                Page      53
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼ACCESSとEXCELについて  ichi 02/10/1(火) 17:11
   ┣Re:ACCESSとEXCELについて  こうちゃん 02/10/2(水) 9:27
   ┣Re:ACCESSとEXCELについて  イケガミ 02/10/2(水) 9:41
   ┃  ┗Re:ACCESSとEXCELについて  ichi 02/10/2(水) 20:59
   ┃     ┗Excelのデジタル署名について  yu-ji 02/10/3(木) 9:30
   ┣Re:ACCESSとEXCELについて  よろずや 02/10/2(水) 21:47
   ┃  ┗Re:ACCESSとEXCELについて  ichi 02/10/2(水) 22:30
   ┃     ┣Re:ACCESSとEXCELについて  こうちゃん 02/10/3(木) 8:43
   ┃     ┗Re:ACCESSとEXCELについて  よろずや 02/10/3(木) 23:34
   ┗Re:ACCESSとEXCELについて  ichi 02/10/4(金) 0:01
      ┗Re:ACCESSとEXCELについて  よろずや 02/10/4(金) 0:18
         ┗どうしてたちあがるのでしょうね?  こうちゃん 02/10/4(金) 8:53
            ┗Re:どうしてたちあがるのでしょうね?  ichi 02/10/5(土) 0:04

 ───────────────────────────────────────
 ■題名 : ACCESSとEXCELについて
 ■名前 : ichi
 ■日付 : 02/10/1(火) 17:11
 -------------------------------------------------------------------------
   初めて投稿します。
ichiと申します。

ACCESSにて、EXCELのマクロ付シートを読込もうと
思っているのですが、毎回毎回マクロを有効にしますか?
と言うMSGBOXが立ち上がってくるのですが、
これを回避する方法はあるのでしょうか?

突拍子もない質問で申し訳ないのですが、
宜しくお願い致します。

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/10/2(水) 9:27  -------------------------------------------------------------------------
   ichi さん、こんにちは

>ACCESSにて、EXCELのマクロ付シートを読込もうと
>思っているのですが、毎回毎回マクロを有効にしますか?
>と言うMSGBOXが立ち上がってくるのですが、
>これを回避する方法はあるのでしょうか?
>
>突拍子もない質問で申し訳ないのですが、
>宜しくお願い致します。

EXCELの「ツール」「マクロ」「セキュリティ」でセキュリティレベルを"低"にすればでなくはなりますが、あまりお勧めできません。

読み込みだけなら、ワークシートを開かずに、DoCmd.TransferSpreadsheetを利用したり、ADOやODBCでデータだけ読み込むような方法をお考えになったほうがいいと思います。

#よろしければ、EXCELを開いた後どんな処理をするのかお教えいただけませんか?
もしかするとアドバイスできることがあるかも知れません。

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/10/2(水) 9:41  -------------------------------------------------------------------------
   Excelのバージョンが分かりませんけど。。

ExcelでVBEの画面を上げて、「ツール」⇒「デジタル署名」を
すれば、メッセージは表示されないようになると思います。

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : ichi  ■日付 : 02/10/2(水) 20:59  -------------------------------------------------------------------------
   こうちゃんさん、イケガミさん
早速の回答有難う御座います。
会社では、ネットに繋げない状況なんで
遅くなってしまい、質問している身分なのに
申し訳御座いません。

現在の状況なのですが、
OS・・・Win2000 Excel,ACCESS・・・2000
で作成使用としています。

EXCELにマクロ(入力時のチェックをするマクロ)をつけて、
多数の人に渡して入力してもらい、入力してもらったデータを
ACCESSにてデータ管理出来ないかと思っております。

また、EXCEL側はシートをまたがる時もあるので
さらに困っています。

その為、デジタル署名を全員に登録してもらう訳にもいかず、
マクロの有効無効のMSGBOXに頭を悩ませてる次第です。

この様な状況なのですが、MSGBOXを表示しないように
する事は出来るのでしょうか。

 ───────────────────────────────────────  ■題名 : Excelのデジタル署名について  ■名前 : yu-ji  ■日付 : 02/10/3(木) 9:30  -------------------------------------------------------------------------
   ▼ichi さん:
>その為、デジタル署名を全員に登録してもらう訳にもいかず、
>マクロの有効無効のMSGBOXに頭を悩ませてる次第です。
>
>この様な状況なのですが、MSGBOXを表示しないように
>する事は出来るのでしょうか。

デジタル署名は、全員に登録してもらう訳ではなく、コードの作成者が
そのコードの署名を書く(=コードの作成者が誰かを分かるようにする)という感じ
なので、ichiさんだけが行えばいいだけですよ。

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : よろずや  ■日付 : 02/10/2(水) 21:47  -------------------------------------------------------------------------
   >ACCESSにて、EXCELのマクロ付シートを読込もうと
>思っているのですが、毎回毎回マクロを有効にしますか?
>と言うMSGBOXが立ち上がってくるのですが、
>これを回避する方法はあるのでしょうか?

現在のコードを書いていただければ添削できると思います。

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : ichi  ■日付 : 02/10/2(水) 22:30  -------------------------------------------------------------------------
   よろずや さん
返答有難うございます。
ソースは以下の通りです。
添削の程、お願い致します。

Obj_Excel変数とStr_Excel_Path変数は
publicで定義してあります。

Sub エクセル読込()
Dim Wk_対象Book     As Workbook
Dim Str_パス      As String
Dim Str_対象Excel    As String
Dim Lng_対象Sheet    As Long
Dim Lng_Sheet_Cnt    As Long
Dim Lng_入力数     As Long

  Lng_入力数 = 0
  Str_パス = Str_Excel_Path
  Str_対象Excel = Dir(Str_パス & "\*.XLS")

  Do While Str_対象Excel <> Empty
    Set Obj_Excel = GetObject(Str_パス & "\" & Str_対象Excel)

    With Obj_Excel.Application
      .Visible = True
      Obj_Excel.Parent.Windows(1).Visible = True
      Lng_対象Sheet = .Worksheets.Count

      For Lng_Sheet_Cnt = 1 To Lng_対象Sheet
        Lng_入力数 = Lng_入力数 + 1
        .Worksheets(Lng_Sheet_Cnt).Activate
        Call 項目取得
      Next

      .ActiveWorkbook.Saved = True
      .ActiveWorkbook.Close
      .Application.Quit
    End With
    Str_対象Excel = Dir
  Loop

End Sub

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/10/3(木) 8:43  -------------------------------------------------------------------------
   ichi さん、こんにちは

>        Call 項目取得

ここで呼んでる 「項目取得」 SubプロシージャもUPしてください。

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : よろずや  ■日付 : 02/10/3(木) 23:34  -------------------------------------------------------------------------
   >    Set Obj_Excel = GetObject(Str_パス & "\" & Str_対象Excel)
>
>    With Obj_Excel.Application

Set Obj_Excel = CreateObject("Excle.Application")
With Obj_Excel
  .Workbooks.Open Str_パス & "\" & Str_対象Excel
ってな感じですかね。
試してませんけど...

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : ichi  ■日付 : 02/10/4(金) 0:01  -------------------------------------------------------------------------
   yu-jiさん、よろずやさん、こうちゃんさん
返答有難う御座います。
今日も遅くなってしまい、申し訳ございません。

項目取得のプロシジャーについて

    項目取得は以下のように変数に格納し
    DBに対してINSERTしているだけです。

    Sub 項目取得()
    Dim Str_Sql      As String

      With Obj_Excel.Application
        Str_項目A = """" & .Cells(3, 3) & """"
        Str_項目B = """" & .Cells(3, 4) & """"
            ・
            ・
        Str_項目H = """" & .Cells(3, 5) & """"
      End With

      上記変数を使いINSERTのSQLを書いて読み込みます。
      Str_Sql = "INSERT INTO 〜"
      CodeDb.Execute Str_Sql
    End Sub

デジタル署名について
    
    追記事項になってしまうのですが、署名をつける事に
    周りの許可が必要な状況と言う事もあり、少し迷っている
    状態です。

CreateObjectについて

    早速試してみました。
    やはり、MSGBOXが立ち上がってきてしまいます。

やはり、根本的にMSGBOXを出さないようにするには
API等をいじらないとダメなのでしょうか。

 ───────────────────────────────────────  ■題名 : Re:ACCESSとEXCELについて  ■名前 : よろずや  ■日付 : 02/10/4(金) 0:18  -------------------------------------------------------------------------
   >CreateObjectについて
>
>    早速試してみました。
>    やはり、MSGBOXが立ち上がってきてしまいます。

おかしいですね。
マクロ付きシートと言うことでしたよね。
そのブックのマクロに問題があるのでは...

 ───────────────────────────────────────  ■題名 : どうしてたちあがるのでしょうね?  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/10/4(金) 8:53  -------------------------------------------------------------------------
   CreateObjectを使った以下のコードでマクロ付Excelシートが、マクロ有効確認のダイアログを表示せずに起動することを確認しています。

Excel2000 セキュリティ「中」


Sub エクセル読込()

Dim Str_パス      As String
Dim Str_対象Excel    As String
Dim Lng_対象Sheet    As Long
Dim Lng_Sheet_Cnt    As Long
Dim Lng_入力数     As Long

Dim Obj_Excel      As Object
  
  Lng_入力数 = 0
'  Str_パス = Str_Excel_Path
  Str_パス = "d:\test"
  Str_対象Excel = Dir(Str_パス & "\*.XLS")

  Do While Str_対象Excel <> Empty
    
    Set Obj_Excel = CreateObject("Excel.Application")

    With Obj_Excel.Application
      .Visible = True
      .Workbooks.Open Str_対象Excel
      Obj_Excel.Parent.Windows(1).Visible = True
      Lng_対象Sheet = .Worksheets.Count

      For Lng_Sheet_Cnt = 1 To Lng_対象Sheet
        Lng_入力数 = Lng_入力数 + 1
        .Worksheets(Lng_Sheet_Cnt).Activate
        Call 項目取得
      Next

      .ActiveWorkbook.Saved = True
      .ActiveWorkbook.Close
      .Application.Quit
    End With
    Str_対象Excel = Dir
  Loop

End Sub

 ───────────────────────────────────────  ■題名 : Re:どうしてたちあがるのでしょうね?  ■名前 : ichi  ■日付 : 02/10/5(土) 0:04  -------------------------------------------------------------------------
   こうちゃんさん、よろずやさん
返答ありがとうございます

上記の件出来ました。
私のミスで、
    Set Obj_Excel = CreateObject("Excel.Application")
の後に、
    Set Obj_Excel = GetObject("c:\a.xls")
を書いていました。。。

本当に申し訳ないです。

色々とみなさんの力で、解決出来ました。
本当に有難う御座いました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 53