さくま
セルに値が入りません
始めて投稿します。
是非、皆さんのお知恵を拝借できましたらと思います。
現在、RSSで独自のチャートなどを作成しています。
RSSで現在値などを取得し、取得した、値によりVBAで処理をしております。
VBAで処理を行った結果を、エクセルのセルに値をセットしようとしているのですが、なぜか、値をセットすることができません。
値のセットは普通にVBAで
ThisWorkbook.Worksheets("テスト").Cells(2, 27).Value = Format(ThisWorkbook.Worksheets("テスト").Cells(10, 20).Value, "hh:mm")
のように記載しているのですが、どうしてもCells(2, 27)に値が入りません。どのようにすれば値が入るようになるのでしょうか?
初歩的な質問で申し訳ありませんが、ご教授いただけますと助かります。
2023年02月02日
大野 了
さくまさん、こんにちは!!
こちらですが、T10 のセルの中身をAA2にコピーされたいということで問題ありませんでしょうか?
記述されたコードですが、コピペして実行してみたのですが、
正常に T10 のセルの中身が、AA2 にコピーされました。
この一行には問題ないと思われますので、
シート名が間違っていたり、そもそもVBAの処理が起きていないなどの、
他の要因が原因と思われます。
もし問題がなければ、前後の情報などをもう少し情報をいただけますと、何かお力になれるかもです!!
2023年02月02日
さくま
早速のコメントありがとうございます。
今、出先なのでファイルなどは用意ができませんが、
やりたいことは、VBAの処理が動いた時にT10に表示されている時間をコピーしたいのです。
通常ですと、記載した処理で正しく動くのですが、RSSが起動して動いていると、何故か、セルに値が入らないのです。
T10の値が取得できているのは確認できています。
がAA2にRSSが動いていると値が入らなくて困ってます。
ちなみにRSSは5秒更新となっています。
お知恵をお貸しいただければと思います。
2023年02月02日
さくま
テストエクセル.xls (106.5KB)
大野様
昨日はコメントいただきまして、ありがとうございます。
現在作成している物の、一部ですが、現象が現れますので、こちらに添付いたします。
マクロについてもあまり慣れておりませんの、皆様のお知恵をお借りできたらと思っております。
やりたいことは、先日のコメントにも記載してありますが、あるトリガーを元にマクロが起動して、シートにあります、値を取得して、セルにコピーを行いたいということです。
是非よろしくお願いします。
2023年02月03日
大野 了
さくまさん、こんにちは!!
ファイルありがとうございます!!
一点確認させてください!!
こちらはRSSを起動していない場合は動作されるとのことですが
いただいたファイルですと、ワークシート関数として使用されている中で
他のセルを更新しているため、エラーとなってしまいます。
Excelのバージョンが異なっているためかと思われますが、
もし、さくまさんの環境では動作されるとのことですので、
ソースコードを確認して感じた、怪しいところは以下の通りです。
・一行目のIf分で再判断している
ワークシート上のuBeep関数の引数でZ1が〇かどうかを判断されていますが、
uBeep関数内で、再度、Z1が丸かどうかを再判断されいるため、
一瞬だけZ1が丸になった場合、
ワークシート上のZ1が〇であったとしても、VBAでの再判断時はZ1が〇であり続けているとは限りません。
If "〇" = ThisWorkbook.Worksheets("2分").Cells(1, 26).Value Then
↓
If c Then
のように、最初に判断された結果を入れている、引数の条件値を使用して判断させたがよいと思われます!!
もしくは、そもそもAA1の関数を以下のように変更し、
=IF(Z1 = "〇",uBeep())
uBeepの中からIf文を外すと、再判断がなくなるためRSSを動かしたときの誤動作はなくなると思います!!
2023年02月03日
さくま
大野様
お返事ありがとうございます。
If "〇" = ThisWorkbook.Worksheets("2分").Cells(1, 26).Value Then
↓
If c Then
に変更し、RSSを動かさない状態で動作させても、値が入らないですし、
ThisWorkbook.Worksheets("2分").Cells(3, 26).Value = Format(ThisWorkbook.Worksheets("2分").Cells(10, 20).Value, "hh:mm")の処理より先に進まないのですが、なぜなのでしょうか?
2023年02月03日
大野 了
さくまさん、こんにちは。
繰り返しな確認になってしまい大変申し訳ありません・・・
こちらですが、初めのご質問の内容で
>通常ですと、記載した処理で正しく動くのですが、RSSが起動して動いていると、何故か、セルに値が入らないのです。
と、ご質問を受けているのですが、
こちらはRSSの実行の有無にかかわらず、関数が動作しないということになりますでしょうかー?
『RSSが実行してるときだけ動作しない』という状況の時と
『常に関数が動作しない』という状況ですと、
原因や対応が異なるため、情報をいただけますと幸いです!!
2023年02月03日
さくま
大野様
ありがとうございます。
こちらですが、RSSの実行の有無にかかわらず、動作しませんでした。
誤解を与えるような記載をしてしまい、大変申し訳ありません。
改めて、お知恵を拝借できましたら幸いです。
2023年02月03日
大野 了
ちなみに、自分のところですが、ワークシート関数のように使われているので、
他のセルの更新はできない感じとなります!!
2023年02月03日
さくま
大野様
何度もありがとうございます。
ワークシート関数ですと、他のセルの更新はできないのですね。
勉強になりました。
2023年02月03日
大野 了
さくまさん、こんにちは!!
すみません、同じタイミングで書き込んでしまい、
さくまさんの投稿と前後してしまいました。(すみません
状況をいろいろと了解しました!!
RSSの実行の有無に関係ないとなると、
やはりワークシート関数のように使用されていることが問題かと思われます!!
でしたらー
細かい仕様がわからないため、さくまさんのご要望を満たせていないかもしれませんがー
Z1が〇の間、時間を出したいのであれば・・・
Z3のセルを
=IF(Z1="〇",ubeep(),"")
としていただき、
VBAを
Function uBeep() As String
uBeep = CStr(Format(ThisWorkbook.Worksheets("2分").Cells(10, 20).Value, "hh:mm"))
End Function
のように変更していただけますと、
Z1が〇の間、Z3に時間が入り続けます。
Z1が×になると、空白になってしまいますが、
もしそれでよければ、この対応が修正がすくなくてよいかもです!!
2023年02月04日
海行かば
RSSがCells(2, 27)を読んでいて循環参照になっていませんか?
2023年02月20日