
VBAは全くの素人です。どの様に相談、教えを請うたら良いのか分からないのですが‥‥。
下記の表はある種目の得点表です。
都度、再計算「F9」key押下すれば良いのですが、でなくVBAにより実現したいのです。
チームの全員が80点以上("合格")を達成すると、上位リーグ参加できます。
一人でも80点未満だと、上位リーグに参戦できず再挑戦となります。
判定結果の$G$8セルに、その結果として「リーグ参加」(合わせてセルの色を#36黄色に) or「再挑戦」と表示したい。
各参加者のG列には判定の為の式 =IF(F3~F7に>=80,"合格","再挑戦")が入力済みです。
$G$8の式 =IF(AND($F$3>=80,$F$4>=80,$F$5>=80,$F$6>=80,$F$7>=80),"リーグ参加","再挑戦")
合わせて、セルF8に"合格"になるまでの再計算(Calculation)回数を表示させたい。.
見よう見まねでマクロコード作ってみたのですが‥‥(~_~; …アセアセ)
Sub リーグ参戦挑戦LIST()
Calculate
Do Until
If Range("$G$8").Value = "再挑戦" Then
Calculate
Else: Range("$G$8").Value = "合格"
IF Range("$F$8").Value ="合格" = Interior.colorIndex = 36
End If
Calculate
Loop
こんな感じのコードになるのかと思うのですが‥‥??。
全く自信がありません。
おんぶにだっこになるかと思うのですが、どなたか教えてください

No.4ベストアンサー
- 回答日時:
Range(”B15:G19”) とRange(”G20”)のダブルクォーテーションが全角なのは
投稿する際に実際のコードのコピペではなく、
ここのサイトの欄に手入力したためと思われますが、そちらの
実際のコードを念のため確認してみてください。”→ "
On Error GoTo errH の後に
Stop を書き加えてシートのRange("B15:G19")に何か入力してみてください。
Stopの行で止まらなければ
Ctrl + G でイミディエイトウィンドウを出して
その中に、Application.EnableEvents = True と入力してEnter。
シート画面に戻って再度Range("B15:G19")に入力。
これでもStopで止まらなければ記述しているシートモジュールが違うのでは?
止まった状態ならF8キーでステップ実行できるので1行ずつ進めていって
マウスカーソルをRange("G20") に合わせて値を確認してみてください。
※まずは最初に示されたシート(セル)のレイアウトで作ってみることをお勧めします。
nicotinism 様
毎度、ありがとうございます。訳が分からなくなってしまいました。
Macro以前の問題、もうちょっと勉強しろ!‥‥と叱られそうですが‥‥。
Alt-F11で作成したマクロコードとExcelのコマンドにある、表示-マクロ-「マクロの表示」とは別物でしょうか?。
Alt-F11で作成したコードをExcel側の「マクロの表示」に表示させるには?。
※Alt-F11ではマクロ実行できず、Excel側で「マクロ実行」可。両方の同時画面表示ができれば良いのですが。
質問時のsheetが無くなり(自分ながら原因不明)、新しくBOOKを作成し質問時のsheetを再生したのですが、
Alt-F11で作成したコードはデバッグでエラーは出ません。Excel表に戻ると「マクロの表示」欄は空白です。
なぜか?、Alt-F11で作成したコードはオブジェクト名-Sheet5となっています。
新Bookでの「マクロの表示」に表示さたいコードはsheet2の名前変更(リーグチャレンジに)したシートです。
No.3のお礼に記した時は、「マクロの表示」にコードが表示されていたのですが、その後本来のシートに合わせるためセル位置変更を行ったのですが、‥‥上手く行きませんでした。その後のご回答がこのNo.4です。
上述の様に、
Sheet名が合わないのが原因でしょうか?。‥‥合わせる為にはどの様にすれば‥‥?。
オブジェクトの中に目的のsheet名(リーグチャレンジ)があるのですが‥‥、
VBAと関係ない事になり申し訳ありません。
No.3
- 回答日時:
コードを記入したいのだが方法が分からないということでしょうか?
VBEを起動すると、Alt + F11 でも起動するはず。
https://excel-ubara.com/excelvba1/EXCELVBA481.html
のような画面になるかと思います。
画面では標準モジュールのコードウィンドウが表示されていますので
左上のプロジェクト ウィンドウの 『Sheet(Sheet1)』をクリックします。
※あの表があるシートです(シート名を変えていればそのシート名)
コードウィンドウがシートモジュールに変るので
そのウィンドウの左上『(General)▼』をクリックしプルダウンから
(General) から Worksheet に変更します。
すると右上の (Declarations) が SelectionChange ▼ に変ります。
今回必要なのは Changeイベントなのでプルダウンから Changeに変更します。
そうすると
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
って出てきますので
この中に前回回答のコードをコピペッタンして前回回答の内容と同じにします。
最後にVBEの、メニューのデバッグ(D)→ VBAProjectのコンパイル をクリック。
なにもエラーが出なければOKです。
シートの画面に切り替えて表の中に適当な数字を入れて検証してみてください。
記入するごとに「回数」が増えてゆくはずです。
VBAに関しては「VBA入門」とかでGoogleと色々なサイトで先達の方が解説されていますので
お勉強なさってください。
画面サンプルとして使わせてもらった
https://excel-ubara.com/excelvba1/
でも総合的に解説されてますね。
nicotinism 様
毎度、ありがとうございます。当方のLISTに落とし込むのに手間暇が掛かっており申し訳ありません。
>Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
って出てきますのでこの中に前回回答のコードをコピペッタンして前回回答の内容と同じにします。
最後にVBEの、メニューのデバッグ(D)→ VBAProjectのコンパイル をクリック。なにもエラーが出なければOKです。
‥‥ありがとうございます。エラーは出なかったです。
>シートの画面に切り替えて表の中に適当な数字を入れて検証してみてください。記入するごとに「回数」が増えてゆくはずです。
‥‥G8、F8のセル位置が当方現物では違っているので、次の様に修正したのですが回数表示が出ません。どこが間違っているのでしょうか?。
On Error GoTo errH
If Application.Intersect(Target, Range(”B15:G19”)) Is Nothing Then Exit Sub
Application.EnableEvents = False '下の行のイベントを再度拾わないようにする
Range(”G20”) = Range(”G20”) + 1
errH:
Application.EnableEvents = True '既定の設定に必ず戻す
※画像File添付したいのですが‥‥、添付するボタンが見当たりませんので、悪しからず。
No.2
- 回答日時:
F8セルの回数は単にセルB3からF7間の入力がある都度1ずつ増えてゆきます。
G8で「合格」となったら止めれば良いだけでは?
クリアしたければ、Del か 0 (ゼロ)入力してください。
前回回答した後で気づきましたが、ひとつのテストで80点以上取れば
他の三つのテストは受けていなくとも合格判定になりますが。これでOK?
さっぱり・・・とはどういう意味でしょう?
こちらも回答?の仕様がないのですけど。

nicotinism 様
ありがとうございます。
あ、あ 良かった。ご指導継続できるのですね。‥‥このサイトの使い方がよくわからないもので‥‥、本来なら、補足説明なのですが、記入場所が見つからなく、お礼場所に記入しました。今回も、
さて、本件ご指摘の通りです。矛盾点がありますね。
申し訳ない(-_-;) (^_-)-;のですが、本来目的をカモフラージュして質問しているため、自分ながら説明が難しいのです。
表内の計算はdata読み込み後、「ファンクション9」を押下する度にセルG3~G7に合否表示を繰り返してくれます。(縦横関数式設定済み)。
私のお願いは、セルG8に"合格"の答えが出るまでの、即ち、「ファンクション9」を押下する動作をVBAで行いたいのです。(併せて、その繰り返し計算の回数も=F8に)。
マメ本を見ていて、Do~Until~Loopが必要かと思っているのですが‥‥。
このVBA作成がさっぱり分からないのです。
※タイトル?の「Sub リーグ参戦挑戦LIST() 」以外のVBAが‥‥。
宜しくお願い致します。
No.1
- 回答日時:
F3 に =SUM(B3:E3) とし F7 までコピペ
G3 に =IF(F3>=80,"合格","再挑戦") として G7 までコピペ
G8 には =IF(COUNTIF(G3:G7,"再挑戦")=0,"合格","再挑戦")
んで
F8 のセルの書式設定に、#,##0"回"
G3 ~ G8 の条件付き書式に
「セルの値」 「次の値に等しい」 「="合格"」
書式に黄色の塗りつぶし
あとはワークシートのチェンジイベントに
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errH
If Application.Intersect(Target, Range("A3:F7")) Is Nothing Then Exit Sub
Application.EnableEvents = False '下の行のイベントを再度拾わないようにする
Range("F8") = Range("F8") + 1
errH:
Application.EnableEvents = True '既定の設定に必ず戻す
End Sub
でどうじゃろ?
nicotinism 様
早速のご回答ありがとうございます。
F3 に =SUM(B3:E3) とし F7 までコピペ
G3 に =IF(F3>=80,"合格","再挑戦") として G7 までコピペ
G3 ~ G8 の条件付き書式に「セルの値」 「次の値に等しい」 「="合格"」
書式に黄色の塗りつぶし
‥‥はOKです。
G8 には =IF(COUNTIF(G3:G7,”再挑戦”=0,”合格”,”再挑戦”)
んで
F8 のセルの書式設定に、#,##0”回”
‥‥再挑戦の数のカウントでなく、G8が合格(全員)になるまでの回数(Loop回数)を知りたいのです。※最初にこの表を新規作成(週一くらい)時にLOOP回数のリセットも必要です。
あとはワークシートのチェンジイベントに
‥‥この後がさっぱりわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
F9キーを実行するVBスクリプトを作ったのですがエラーになる
その他(プログラミング・Web制作)
-
Enterキーでマクロを起動さす。
その他(ソフトウェア)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
エクセルVBA 段落番号自動取得方法
-
VBAの「To」という語句について
-
ExcelのVBAコードについて教え...
-
質問58753 このコードでうまく...
-
VBAでユーザーフォームを指定回...
-
以下のプログラムの実行結果は...
-
VBAでFOR NEXT分を Application...
-
VBAについてです。 どなたかご...
-
VBA 最終行の取得がうまくいか...
-
Excel マクロについて詳しい方...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
VBAでセルの書式を変えずに文字...
-
【ExcelVBA】値を変更しながら...
-
Excel 範囲指定スクショについ...
-
えくせるのVBAコードについて教...
-
エクセルのVBAコードについて教...
-
VBA 同じフォルダ内のすべての...
-
エクセルでCDOを使ったメール送...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.net 文字列から日付型へ変更...
-
VBA 最終行の取得がうまくいか...
-
VBAでエクセルのテキストデータ...
-
【ExcelVBA】5万行以上のデー...
-
エクセルVBAで在庫の組み換え処...
-
VBAから書き込んだ条件付き初期...
-
エクセルのVBAコードについて教...
-
VBAでユーザーフォームを指定回...
-
エクセルのVBAについて教えてく...
-
vbaマクロについて
-
ExcelのVBAコードについて教え...
-
【VBA】 結合セルに複数画像と...
-
WindowsのOutlook を VBA から...
-
質問58753 このコードでうまく...
-
ExcelのVBAコードについて教え...
-
Excel VBAについて。こんな動作...
-
[Excel VBA]特定の条件で文字を...
-
[VB.net] ボタン(Flat)のEnable...
-
エクエルのVBAコードについて教...
-
ExcelのVBAコードについて教え...
おすすめ情報