ジャストアンサーのしくみ:
  • 専門家に質問
    知識豊富な専門家があらゆる質問にお答えするために常に待機しています。
  • 専門家が丁寧に対応
    E メールやサイト内オンラインメッセージなど、さまざまな手段で回答を通知。必要に応じてフォローアップの質問をすることもできます。
  • やり取り回数、制限なし
    専門家からの回答を確認し評価をすることで、支払うかどうかを決めます。
akihiroiに今すぐ質問する
akihiroi
akihiroi,
カテゴリ: Microsoft
満足したユーザー: 756
経験:  インストール系のアプリケーション開発からWEB系のクラウドシステムまで幅広く開発を行ってきました。プログラマーだけでなく、システムエンジニアとしてPLやPMも経験しています。
106967838
ここに Microsoft に関する質問を入力してください。
akihiroiがオンラインで質問受付中

これまで動いていたVBAプログラムが、Office365環境では動かなくなりました。「インデックスが有効範囲にありません

ユーザー評価:

これまで動いていたVBAプログラムが、Office365環境では動かなくなりました。「インデックスが有効範囲にありません」というメッセージで止まります。エクセルシートの Cell(1,1)=値 の実行で止まります。
JA: そのプログラムを開こうとした時に、画面に何か表示されますか?
Customer: プログラムを開くときには普通に開けます。
JA: ありがとうございます。上記の他に何かテクニカルサポート専門家に事前に伝えておきたいことはありますか?
Customer: 特にありません。

お世話になっております。Akiと申します。
宜しくお願い致します。

※プレミアムサービスを勧めるメッセージが表示されますが、システムが自動で送信しているものなので、ご希望でない場合はしてください。
※業務の都合上、回答を頂いてから返答するまでに間が空いたり、時間帯によっては返答出来なかったりすることがあります。ご了承ください。

そのエラーが出るということは、配列やコレクションの存在しないインデックスや名前を指定したということになります。

デバッグ実行してみて値が本当に範囲外なのかを調べてみてはいかがでしょうか?

質問者: 返答済み 13 日 前.
12456;クセルの一つのシートに値を書き込もうとしています。変数としての配列ではないので次元の宣言はしていません。
直前に Worksheets("Sheet1").Cells.Clear とういう文を実行し、これは問題なく処理されています。
次に
Workbooks(cread1).Worksheets("Sheet1").Cells(1, 1) = "勤務所番号"
を実行するところで「インデックスが・・・」のエラーメッセージが出ます。
Sheet1 とういワークシートは存在しています。

プログラム全体を見てみないと何とも言えませんが、Sheet1が指定きちんとされていたらエラーにはならないと思います。

考えられる可能性としては、そのSheet1の指定に失敗しているのではないかと思います。

質問者: 返答済み 13 日 前.
35430;しにOffice365ではないPCで全く同じプログラムを実行してみたのですが、こちらは問題なく動きました。

ですのでデバッグ実行して値がどう指定されてないのかを見てみる必要があると思います。

質問者: 返答済み 13 日 前.
Office365になって、配列の扱い等が厳密になった部分があるかと思い、割と一般的な質問かと思ったのですが、そうでもなさそうです。わかりました。もう少し丁寧にデバッグしてみます。ありがとうございました。

Office365で同じような質問を受けたことがあります。

以前はデバッグしてみるとシートの指定が365ではできていなかったとのことでその後質問者様がデバッグ中に指定しなおして解決しました。

申し訳ございませんがそこの部分を見てくださいますようお願い申し上げます。

私共は、評価をいただくことで、この活動をしております。
質問ページ右上に表示されている5つ星から、該当する星の数を選択して、
[評価する]、をいただけますでしょうか。
これにより追加料金がかかるなどは一切ございません。
どうぞよろしくお願いいたします。

akihiroiをはじめその他名のMicrosoftカテゴリの専門家が質問受付中