Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3519 / 13645 ツリー ←次へ | 前へ→

【61677】別ブックの編集について HIRO 09/5/27(水) 12:25 質問[未読]
【61680】回答ではないですが・・・・ つん 09/5/27(水) 16:15 発言[未読]
【61696】Re:回答ではないですが・・・・ HIRO 09/5/28(木) 10:11 発言[未読]
【61698】Re:回答ではないですが・・・・ つん 09/5/28(木) 10:29 回答[未読]
【61700】Re:回答ではないですが・・・・ HIRO 09/5/28(木) 11:18 質問[未読]
【61702】誰か助けて〜 つん 09/5/28(木) 11:53 発言[未読]
【61704】Re:誰か助けて〜 Abebobo 09/5/28(木) 12:04 発言[未読]
【61703】Re:回答ではないですが・・・・ neptune 09/5/28(木) 11:58 発言[未読]
【61705】Re:回答ではないですが・・・・ HIRO 09/5/28(木) 12:38 発言[未読]
【61707】Re:回答ではないですが・・・・ Yuki 09/5/28(木) 13:54 発言[未読]
【61708】Re:回答ではないですが・・・・ HIRO 09/5/28(木) 14:16 お礼[未読]

【61677】別ブックの編集について
質問  HIRO  - 09/5/27(水) 12:25 -

引用なし
パスワード
   BOOK1にてCALLでBOOK2(別ウィンドウ)を開いた後にBOOK2の内容をBOOK1のマクロで編集したいのですがどうしてもインデックスの範囲外とエラーになってしまいます。
BOOK2は”HTTP/〜”とサーバー上のデータで読取専用となっています。
マクロにて編集するためにはどのようにしたらいいのでしょうか?

【61680】回答ではないですが・・・・
発言  つん  - 09/5/27(水) 16:15 -

引用なし
パスワード
   ▼HIRO さん:
こんにちは^^

>BOOK1にてCALLでBOOK2(別ウィンドウ)を開いた後にBOOK2の内容をBOOK1のマクロで編集したいのですがどうしてもインデックスの範囲外とエラーになってしまいます。
>BOOK2は”HTTP/〜”とサーバー上のデータで読取専用となっています。
>マクロにて編集するためにはどのようにしたらいいのでしょうか?

とりあえず、そのエラーが出るというコードをアップされてみてはいかがですか?

【61696】Re:回答ではないですが・・・・
発言  HIRO  - 09/5/28(木) 10:11 -

引用なし
パスワード
   ▼つん さん:
>▼HIRO さん:
>こんにちは^^
>
>>BOOK1にてCALLでBOOK2(別ウィンドウ)を開いた後にBOOK2の内容をBOOK1のマクロで編集したいのですがどうしてもインデックスの範囲外とエラーになってしまいます。
>>BOOK2は”HTTP/〜”とサーバー上のデータで読取専用となっています。
>>マクロにて編集するためにはどのようにしたらいいのでしょうか?
>
>とりあえず、そのエラーが出るというコードをアップされてみてはいかがですか?

返信遅くなりましが・・
編集内容はコードが長すぎますので冒頭部分のみ掲載させていただきます
(というかそこでエラーになるのですが・・・)


CALL SHELL("BOOK1",1)にて起動した後に
Workbooks("BOOK1").Activate
ここでエラーになってしまします。

※BOOK1は別の処理にてパスを取得して変数で代入しています。
(パスはHTTP〜始まるものです)

【61698】Re:回答ではないですが・・・・
回答  つん  - 09/5/28(木) 10:29 -

引用なし
パスワード
   おはよーございます^^


>CALL SHELL("BOOK1",1)にて起動した後に
>Workbooks("BOOK1").Activate
>ここでエラーになってしまします。
>
>※BOOK1は別の処理にてパスを取得して変数で代入しています。
>(パスはHTTP〜始まるものです)

パス付きで指定してるからちゃいますか?

Workbooks("C:\Documents and Settings\hogehoge\デスクトップ\omtest\A.xls").Activate

では、「インデックス云々・・」のエラーになります。

Workbooks("A.xls").Activate

でOK

あ、それから

>BOOK1は別の処理にてパスを取得して変数で代入
って、

Workbooks("BOOK1").Activate
変数を「""」で囲んじゃダメです。

【61700】Re:回答ではないですが・・・・
質問  HIRO  - 09/5/28(木) 11:18 -

引用なし
パスワード
   ▼つん さん:
>
>パス付きで指定してるからちゃいますか?
>
>Workbooks("C:\Documents and Settings\hogehoge\デスクトップ\omtest\A.xls").Activate
>
>では、「インデックス云々・・」のエラーになります。
>
>Workbooks("A.xls").Activate
>
>でOK
>

ファイル名のみで試したのですがやはり同じエラーになってしまいました。
通常、エクセルは複数開くと連動して同じウィンドウ内に表示されるとおもうのですが
自分のやり方ですと連動しない完全別のウィンドウで開かれるのがまずいのでしょうか?

ちなみにパスの前にC:\Program Files\Microsoft Office\Office\EXCEL.EXEを追加して実行してます。(ワードファイル等開くときはこの指定がいるのでエクセルの場合も
統一してつけてしまってるのですがこれがいけないのですかね?)

【61702】誰か助けて〜
発言  つん  - 09/5/28(木) 11:53 -

引用なし
パスワード
   >ファイル名のみで試したのですがやはり同じエラーになってしまいました。
>通常、エクセルは複数開くと連動して同じウィンドウ内に表示されるとおもうのですが
>自分のやり方ですと連動しない完全別のウィンドウで開かれるのがまずいのでしょうか?

ああ・・・別に、エクセルを立ち上げてそこで、ファイルを開いてる状態になるんですね。(その辺わかってませんでした)
確かにそうやって、「A.xls」を開いて、

Workbooks("A.xls").Activate

するとエラーになりますね。

うーん、
こうなってくると私もわかんないです。

>ちなみにパスの前にC:\Program Files\Microsoft Office\Office\EXCEL.EXEを追加して実行してます。(ワードファイル等開くときはこの指定がいるのでエクセルの場合も
>統一してつけてしまってるのですがこれがいけないのですかね?)

このへんも・・・orz

どなたか達人の方のご出馬をお待ちしましょう〜^^;

【61703】Re:回答ではないですが・・・・
発言  neptune  - 09/5/28(木) 11:58 -

引用なし
パスワード
   ▼HIRO さん:
情報が小出しですねぇ。

>CALL SHELL("BOOK1",1)にて起動した後に
まぁ↑では絶対に動作しませんけど。とにかく、本当の文では
動くわけですね?

動くのなら、book名の所に本当のbook名を書けば動くはずです。
Workbooks(book名).Activate
動かないなら、・・・・・もっと再現できる情報を出しましょう。
このままでは誰も想像でしか答えられんですよ。

【61704】Re:誰か助けて〜
発言  Abebobo  - 09/5/28(木) 12:04 -

引用なし
パスワード
   >どなたか達人の方のご出馬をお待ちしましょう〜^^;
やばい・・・でにくい・・・・
・・でも勇気をだして

>>BOOK2は”HTTP/〜”とサーバー上のデータで読取専用となっています。
もしかして、インターネットエクスプローラ上でエクセルが開いていませんか?

大はずれか???

【61705】Re:回答ではないですが・・・・
発言  HIRO  - 09/5/28(木) 12:38 -

引用なし
パスワード
   ▼neptune さん:
>▼HIRO さん:
>情報が小出しですねぇ。
>
>>CALL SHELL("BOOK1",1)にて起動した後に
>まぁ↑では絶対に動作しませんけど。とにかく、本当の文では
>動くわけですね?
>
>動くのなら、book名の所に本当のbook名を書けば動くはずです。
>Workbooks(book名).Activate
>動かないなら、・・・・・もっと再現できる情報を出しましょう。
>このままでは誰も想像でしか答えられんですよ。

情報が不足して申し訳ないです。

実際のエクセルをオープンさせているコードは
Call Shell(URL, 1)
となっています。
URLにはべつで代入しています。(HTTP〜のパス)
一応これで実行しますとファイルが開きます。
見た目上開いたものがアクティブでフォーカスも移ってるのですが
たとえばアクティブの文をなくして
SHEET1.RANGE("A1").Value="xx"
としていきなり書き込みにいっても実際に書き込まれるのは
開く処理の元のbook1のA1に書き込まれてしまう状態です。
一応すべてのコードを張っておきます。
Dim URL As String   '依頼書本紙アドレス格納
Dim LIST As String
Dim MyAppID, ReturnValue


'*********************************************
'*ファイルオープン処理            *
'*********************************************

Sub 開く()
参照先確定

Call Shell(URL, 1)

If LIST = "xxxxxxxx" Then  

初期設定 ←ここに先ほどのコードを記述してます。

End If


End Sub

*******************
Sub 参照先確定()


LIST = Sheet1.Range("D1").Text
LP = 1

Do
  If LIST = Sheet2.Range("A" & LP).Value Then
     URL = Sheet2.Range("B" & LP).Value

    Exit Do
  End If

  LP = LP + 1
Loop

 
End Sub

お手数おかけしますがよろしくお願いします。

【61707】Re:回答ではないですが・・・・
発言  Yuki  - 09/5/28(木) 13:54 -

引用なし
パスワード
   ▼HIRO さん:
エクセルのVBAを使ってSHELLでエクセルを開くことが
普通では考えないですよね。
この場合SHELL関数で開くとインスタンスが別になりますから
Workbooks(xxxxx).activateは駄目ですね。

dim wb as workbook
set wb = Worksbooks.Open(アドレス及びファイル名)
で処理された方が宜しいかと思います。

【61708】Re:回答ではないですが・・・・
お礼  HIRO  - 09/5/28(木) 14:16 -

引用なし
パスワード
   ▼Yuki さん:
>▼HIRO さん:
>エクセルのVBAを使ってSHELLでエクセルを開くことが
>普通では考えないですよね。
>この場合SHELL関数で開くとインスタンスが別になりますから
>Workbooks(xxxxx).activateは駄目ですね。
>
>dim wb as workbook
>set wb = Worksbooks.Open(アドレス及びファイル名)
>で処理された方が宜しいかと思います。

ご回答ありがとうございます。
やはり そちらでないとだめですか・・・
じつは、ワードファイルなども開きたい関係でこのような処理になってしまいました。
shellでなくオープンで開く様に変更してやって見ます。

皆様、ご回答ありがとうございました。

3519 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free