Excel VBA質問箱 IV

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

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


9484 / 13644 ツリー ←次へ | 前へ→

【26814】Excelの仕様? ひらごく7 05/7/19(火) 14:15 質問[未読]
【26817】Re:Excelの仕様? 角田 05/7/19(火) 16:15 回答[未読]
【27064】Re:Excelの仕様? ひらごく7 05/7/27(水) 16:02 お礼[未読]
【27069】Re:Excelの仕様? 角田 05/7/27(水) 20:04 回答[未読]

【26814】Excelの仕様?
質問  ひらごく7  - 05/7/19(火) 14:15 -

引用なし
パスワード
   こんにちは。
ひらごく7です。

Excel VBA質問箱に投稿すべき内容か迷いましたが、
すみません。投稿してしまいました。

質問内容としては、
セル内に記述されている文字列を置換し、
置換前のセルと置換後のセルをログとして別シートに出力した際に、
ログ出力で無限ループしてしまいました。

この原因として、以下を考えました。
・Excelの仕様(セル内に記述できるバイト数256バイト?)?
・置換をする際の文字列長の制約?

真の原因が何かを知りたいです。
どうかご教授願います。

【26817】Re:Excelの仕様?
回答  角田 WEB  - 05/7/19(火) 16:15 -

引用なし
パスワード
   こんにちは。
>セル内に記述されている文字列を置換し、
>置換前のセルと置換後のセルをログとして別シートに出力した際に、
>ログ出力で無限ループしてしまいました。
>この原因として、以下を考えました。
>・Excelの仕様(セル内に記述できるバイト数256バイト?)?
>・置換をする際の文字列長の制約?
どんなマクロを書いたのかも判らないので、
どういう流れで、そういう結論に辿り着いたのか判りませんが、
そもそもマクロの作り方(イベントの使い方)が「無限ループになる作り」
になっているって事でしょうね。

ブレークポイントを設定して1ステップずつ進めながら
その時に変数の内容と、イベントがどういう風に発生しているのか
を確認してデバッグしてください。

【27064】Re:Excelの仕様?
お礼  ひらごく7  - 05/7/27(水) 16:02 -

引用なし
パスワード
   ▼角田 さん:
こんにちは。
ひらごく7です。
返事を書くのが遅くなってしまいました。

>どんなマクロを書いたのかも判らないので、
>どういう流れで、そういう結論に辿り着いたのか判りませんが、
>そもそもマクロの作り方(イベントの使い方)が「無限ループになる作り」
>になっているって事でしょうね。
>ブレークポイントを設定して1ステップずつ進めながら
>その時に変数の内容と、イベントがどういう風に発生しているのか
>を確認してデバッグしてください。

確認したところ、置換後のセル内の文字数が256文字以上の場合、
置換されずに、無限ループに陥っていました。
セルの制約なのか、不明ですが、ツールの使用を
置換後のセル内の文字列は255文字までとして、対処しました。
ありがとうございました。

【27069】Re:Excelの仕様?
回答  角田 WEB  - 05/7/27(水) 20:04 -

引用なし
パスワード
   こんにちは。
>置換後のセル内の文字数が256文字以上の場合、
>置換されずに、無限ループに陥っていました。
あぁ、そういう事ですか。
そういうケースでの255文字制限はあります。確かに仕様です。
いろんなところで出て来ますね。
Excel95以前の名残でしょうね(確か入力自体が255文字まででしたから)。

例えば、セル単位のコピーでは256文字以上の内容でも正しく相手セルへ
コピーされますが、シート全体のコピーの場合、1セルに256文字以上入っている
セルでは頭255文字までしかコピーされません。
他にもあるでしょうね。

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