• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA パソコン変更で動作不能に)

エクセルVBA パソコン変更で動作不能

このQ&Aのポイント
  • エクセルVBAを使用してパソコンの変更に伴う動作不能の問題を解決する方法について教えてください。
  • パソコンの変更によりエクセルVBAが動作しなくなった場合、商品コードの作成を行うVBAコードを修正することで問題を解決できます。
  • VBAによる商品コードの作成がうまくいかない原因として、色コードのセル範囲の指定が正しく行われていない可能性があります。

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

  • ベストアンサー
回答No.2

プログラムコードを見る限り、動作上の問題はないように見えます。 となると、動作しないという点はプログラム以外が原因とみる必要があります。 まず、VBマクロの実行は確実に行われている。かの確認が必要となります。 Windowsアップデートの関係でVistaにおいてVBマクロが動作不可になっている可能性があります。また、PCが変わっていることが原因として考えられるものは、VBマクロの作成場所というのも考えられます。 そのため、VBマクロ内において要素要素でブレークポイントをおいて動作確認をしてください。 ブレークポイントを置いても反応することがなく終了してしまう場合は、マクロが実行されていません。 実際、VBはコード以外にも確認をしてみないとわからないので詳細回答はできないのですが、要素を一つずつ潰しながら調べるのがいいと思います。

value100100
質問者

お礼

回答ありがとうございます。ポイントは「Windowsアップデートの関係でVistaにおいてVBマクロが動作不可になっている可能性があります。」の箇所でした。今回の不具合は、Excelの互換性の問題だったようです。 『Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック』をダウンロードすることで解決できました。ありがとうございました。

その他の回答 (3)

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.4

Application.ScreenUpdating = False Application.ScreenUpdating = true 上記をコメントにして一時作動中止 next i の前にブレークポイントを挿入して結果を見れば判明するのでは? i=0でも指定セルには必ず数値が入力されるのであればその数値と数式で検証出来ますよね。変数や数式の結果は下記3つの方法で確認出来ますね。 Debug.Print ウィッチ式 変数にカーソルを合わせると結果を表示 セルに計算結果を直接入力していますが、変数に格納してデバックすると結果確認が容易になります。 sheet1を表示させてVBAを実行させないと変数及び配列データの取得が出来ないと思います。 冒頭にSheets("sheet2").Select又はactivateでsheet1をアクティブにした方が良いのではないでしょうか。 私はselect、activeは画面切り替えが発生する可能性があるので、withステートメントの方を使用することの方が多いのですが。 結果が何も出ないのであれば、変数の取得が出来ていない可能性があるのではないでしょうか。 デバック方法 http://www.excel-excel.com/vbachair/step1-7.html

value100100
質問者

お礼

回答ありがとうございます。デバッグにより調べてみました。 結果が何も出ないので、変数の取得が出来ていない可能性があると思われます。

  • kichi8000
  • ベストアンサー率41% (660/1584)
回答No.3

Sheet2の書式や文字色に何か設定はされていませんか。 見えないだけということはありませんか。

value100100
質問者

お礼

回答ありがとうございます。 Sheet2には特に書式や文字色の設定はしていません。

回答No.1

どこまでできているかステップでチェックしていけばよいのでは? ASide = Range("A3:A6") ASideに値は入っているか? Application.ScreenUpdating = Falseをやめて、 .Cells(i + 1, 3) = ASide(aa, 1) & BSide(bb, 1) & CSide(cc, 1) & DSide(dd, 1) & ESideが実行されて値が入っているか、、、

value100100
質問者

お礼

回答ありがとうございます。 ご指示どおりステップチェックしてみたところASideに値が入っていませんでした。 そうなってしまう原因を探そうと思います。