• ベストアンサー

ブックを開く順序ってブック名取得に関係あるのでしょうか??

エクセルブックAに他に開いているブック名を取得するマクロを作っています。 ブックBを開いてブックAを開き、マクロを実行すると正常に動きますが、ブックAを先に開いてマクロを実行するとブックがないと言ってきます。 ブックを開く順序ってブック名取得に関係あるのでしょうか??

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

  • ベストアンサー
  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.1

どのようにブック名を取得しているかに寄りますね。 おそらくインデックス番号で取得してるんじゃないでしょうか? インデックス番号で取得している場合、開いた順にインデックス番号が付きますので、VB上参照するブックのインデックス番号が不正になってしまっているのではないでしょうか? (例えばブックAのインデックス番号を読み込み、その番号-1~1までのブック名を取得してるとか) 開く順番を意識せずやるなら、ブックAのインデックス番号および存在しないインデックス番号を除外するような形で、ブック名の取得をループ処理すれば与野ではないでしょうか? 例) ブックAのインデックス番号の場合はIf構文で回避する。 ループ処理では単純にインデックス番号1から取得していくようにし、インデックス番号が存在しなくなった時点でループを抜け出す。

noname#113614
質問者

お礼

回答ありがとうございました。解決いたしました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL VBAで2つEXCELを起動したときのブック名取得の方法

    for each *** In workbooks・・・Nextで現在開いているexcelのブック名をすべて取得することができますが、2つめのexcelを起動し、そこで開いたブック名は取得することができません。 プロシージャは個人用マクロブックに記載しているのですが、複数起動したexcelのすべてのブック名を取得する方法をどなたかご存知の方いませんでしょうか? excel2007を使用しています。よろしくお願いします。

  • アクティブなブックのマクロの実行について

    現在使用しているエクセルのブックがあり、ブック名はA(Ver1.0)とします。 このブックにApplication.Run "'A(Ver1.0).xls'!(1)"…Application.Run "'A(Ver1.0).xls'!(20)"というマクロがあります。 ブック名をマクロ実行前に必ず変更しなければならなくて、そのブック名は毎回違ったものになります。 わざわざブック名を変更せずに、現在開いているブックのマクロを実行するという風にしたいのですがどうしたらいいですか? よろしくお願いします。

  • 別bookのシート名一覧を作成するVBA(都度)

    初めまして。エクセルVBA初心者です。 別bookのシート名を取得するマクロをつくりたいのですがご教示頂けないでしょうか? その際、マクロを実行すると最初にどのbookを開くか?ファイル場所を聞いてくるマクロを設計したいのです。 その後、今開いているアクティブbookのA列の1行目に別bookのシート名一覧が入力されるというものです。 ファイル場所を聞いてくるマクロは調べてもでてこないため、質問しました。 完了したら別bookは閉じてある状態であることが理想です。 そして、その隣のB列はまたさらに他の別bookのシート名一覧を比較用に入力予定ですので、B列用の別マクロを続きで作成したいと思っています。 ご教示のほど宜しくお願いします。

  • ブック間のシート移動

    EXCEL VBA初心者です。 ブックAのシートAをブックBのシートの一番左側に移動させようと思います。 以下を実行するとエラーが出ますがなぜでしょうか? エラーの原因と対策方法を教えて下さい。 Sub シート移動() Worksheets("シートA").Move _ Before:=Workbooks("ブックB.xls").Sheets(1) End Sub ブックAはブック名が毎回変わります。 ブックAはメール添付を開いたブックです。 ブックAはシートがシートAしかありません。 シートAは名前が変わりません。 マクロコードはブックBあるいは個人用マクロブックに置きます。 よろしくお願いします。

  • Excel VBAでホスト名取得

    タイトルにあるようにExcel VBAでホスト名の取得を行いたいと思っています。 処理としては、あらかじめセルに入力してあるIPアドレスを変数に入れて、そこからホスト名を取得して隣のセルに入力する。 という処理を行いたいのですが、変数に入れて隣のセルにという部分はわかるのですが、ホスト名取得の方法がわかりません。 VBAではできないのでしょうか? 教えて下さい。 webサイトでIPアドレスを入れるとホスト名を取得できる下記のようなサービスをVBA上で行いたいのですが。 http://www.cman.jp/network/support/ip.html http://www.kagoshima-it.go.jp/~nagayosi/php.html よろしくお願いします。

  • Book間でのコピー

    エクセルで以下の処理を実行するマクロを知りたいのですが。 Book1とBook2が開いています。 Book2のSheet1のA1~A10を、Book2のSheet1のA1~A10にコピーします。 この処理を任意の2つのBook間で実行するためにはどんなマクロになるでしょうか。(Book3とBook5で行ったり、Book25とBook46で行ったり等) アクティブになってないBookからアクティブになっているBookにコピーするようにしたいのですが。 宜しくお願いします。

  • 「開いているすべてのブック」に保存したマクロの削除

    パソコンド素人です。マクロが含まれたほかのエクセルブックを多数開いたまま、エクセルマクロ初心者講座(http://kabu-macro.com/kouza/macro/macro_jikkou.html)を見ながら、A1のセルのデータを消去するマクロを作って実行したところ、実行時の保存先が「開いてるすべてのブック」になっていたからなのか、他のエクセルのブックでも新しくシートを作っても、Ctrl+Z (ショートカットを作っていました)でA1のデータが削除されるようになってしまいました。(実行前には標準モジュールのModule2にこのVBAが入ってたのを確認したのですが、実行後にはModule2がなくなっていました) このままでも問題はないのですが、わからないのは悔しいので、どなたかこのマクロの削除方法を教えてください!  個人用マクロブックとやらにあるらしいことはわかったのですが、そのファイルが検索しても出てきません。OSはVistaでエクセル2000と2007を使用してます。ちなみにエクセル2000でこのマクロを作ったのに2007でもCtrl+ZでA1のデータが削除されます。 よろしくお願いします。

  • 複数のブックを新しいブックのSheet1にまとめたい

    教えてください。 「A」「B」「C」「D」「E」「F」「G」 と言った名前のエクセルファイルがあります。 実際は約50個ありますが・・・。 それぞれ、Sheet1にのみ同じフォーマットですが、行数というか、件数が異なります。 新しいエクセルブックのSheet1にA」のデータの下に「B」のデータを貼り付けるという風に、「A」~「G」をまとめて一つのシートにまとめたいです。コピペではなくマクロでできるということを知りました。 毎月作業することになるので、マクロを組んでおきたいと思っています。 しかし、マクロは単純作業を記録して実行するというような基本的なことしかわかりません。 専門的用語ではなく、 (1)ツールをクリック (2)すべてのブックを開いておく (3)Visual Basicをクリック などというように、手順を教えていただけないでしょうか? よろしくお願いします。

  • クライアントのホスト名取得方法

    自社内のクライアントコンピュータのホスト名を取得するコマンドまたはプログラミング(VB)を教えてください。よく巷にあるツールを使うとIPアドレスから生死確認、ホスト名取得がありますがあれがどのようにやっているのかわかりません。生死確認はpingだと思うのですが、ホスト名をどのようにして取得しているかを知りたいです。自社の出勤管理にコンピュータ名(ホスト名)の一覧を取得したいと考えています。対象コンピュータはWindowsで、管理コンピュータもWindowsです。よろしくお願いします。

  • ブックを開くマクロ

    データ管理というファイルの中にある データー(1)のファイルの中の データ表(1)というエクセルbookのあるマクロを実行すると 同じくデータ管理というファイルの中にある データー(2)のファイルの中の データ表(2)というbookを開き そのbookのsheet1のA1:B5をコピーして データ表(1)エクセルbookのsheet1のA1:B5に貼り付ける・・・ というVBAを組む事は出来ますでしょうか? 分かりにくくてすいません

専門家に質問してみよう