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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
F9キーを実行するVBスクリプトを作ったのですがエラーになる
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
Visualbasicの現状について教え...
-
【ExcelVBA】インデックスが有...
-
VBA 別ブックから条件に合うも...
-
VBA 別ブックからコピペしたい...
-
VBAの間違い教えて下さい
-
エクセルvbaの対象セルに色をつ...
-
【ExcelVBA】5万行以上のデー...
-
[VB.net] ボタン(Flat)のEnable...
-
VBA 2次元配列の出力
-
【VBA】値を変更しながら連続で...
-
ExcelのVBAコードについて教え...
-
エクセルでCDOを使ったメール送...
-
VBAでセルの書式を変えずに文字...
-
【VBA】スペースが入っていない...
-
配列のペースト出力結果の書式...
-
VBA ユーザーフォーム ボタンク...
-
エクセルVBAのブックを開く方法...
-
【ExcelVBA】dictionaryの重複...
-
[Excel VBA]特定の条件で文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】5万行以上のデー...
-
【ExcelVBA】dictionaryの重複...
-
VBAでセルの書式を変えずに文字...
-
[Excel VBA]特定の条件で文字を...
-
【VBA】 結合セルに複数画像と...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAのブックを開く方法...
-
WindowsのOutlook を VBA から...
-
エクセルでCDOを使ったメール送...
-
エクセルvbaの対象セルに色をつ...
-
【ExcelVBA】インデックスが有...
-
Excelのマクロについて教えてく...
-
エクセルVBAで特定のセルの値を...
-
エクセルのVBAコードについて教...
-
【VBA】値を変更しながら連続で...
-
Outlookの「受信日時」「件名」...
-
VBA 2次元配列の出力
-
Excel 範囲指定スクショについ...
-
VBA 別ブックから条件に合うも...
-
Web画面の文字をVB6で取得したい
おすすめ情報