エクセルまたはパワポで次のようなことを行いたのですが、マクロボタンなどで実現できますでしょうか?

エクセルまたはパワポで次のようなことを行いたのですが、マクロボタンなどで実現できますでしょうか? 1.3つのボタン「A、B、C」を設け、クリックで選択したボタンは色が変わる。 2度クリックすると色は戻る。複数選択はできない。 2.2つのボタン「D、E」を設け、クリックで選択したボタンは色が変わる。 同じく2度クリックすると色は戻る。複数選択はできない。 3.上記1.と同じく「F、G、H」3つのボタンを設ける。 4.上記2.と同じく「I、J」2つのボタンを設ける。 5.1.~4.が押されたとき、36パターン(3×2×3×2)を識別する。 6.36パターンを識別したうえで、 「あ、い、う、え、お、か、き、・・・・み、む、め、も、や」 の36通りの平仮名一文字を表示する。 できますでしょうか。 ご存じの方、お知恵のある方がいらっしゃればご教示願います。

Excel | Visual Basic59閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

0

すこしダサ目のコードになってしまいましたが・・・。 オプションボタンで行きます。 なお、コントロールは全てActiveXです。 添付図のようにシートにImageを4つとOptionButtonを10個配置して下さい。 OptionButtonはA~Jの順番とインデックスの順番が一致するように配置して下さい。 Imageも同様に順番に配置して下さい。 A・B・CのOptionButtonのGroupNameプロパティをImage1に D・EのOptionButtonのGroupNameプロパティをImage2に F・G・HのOptionButtonのGroupNameプロパティをImage3に I・JのOptionButtonのGroupNameプロパティをImage4に 設定して下さい。 シートの以下のコードをコピペして下さい。 Option Explicit Private Sub OptionButton1_Click()     Call DispCha End Sub Private Sub OptionButton10_Click()     Call DispCha End Sub Private Sub OptionButton2_Click()     Call DispCha End Sub Private Sub OptionButton3_Click()     Call DispCha End Sub Private Sub OptionButton4_Click()     Call DispCha End Sub Private Sub OptionButton5_Click()     Call DispCha End Sub Private Sub OptionButton6_Click()     Call DispCha End Sub Private Sub OptionButton7_Click()     Call DispCha End Sub Private Sub OptionButton8_Click()     Call DispCha End Sub Private Sub OptionButton9_Click()     Call DispCha End Sub Private Sub DispCha() Dim Obj As OLEObject, IDX, i, Iti Const Green = 12648384 Const White = -2147483643 Const Hira = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもや" Application.ScreenUpdating = False i = 0 IDX = 0 For Each Obj In Me.OLEObjects     If Obj.Name Like "Op*" Then         Select Case Obj.Object.Value             Case True                 Obj.Object.BackColor = Green                 IDX = IDX + 2 ^ i             Case False                 Obj.Object.BackColor = White         End Select         i = i + 1     End If Next Obj Select Case IDX Case (2 ^ 0 + 2 ^ 3 + 2 ^ 5 + 2 ^ 8): Iti = 1 'A,D,F,I あ Case (2 ^ 1 + 2 ^ 3 + 2 ^ 5 + 2 ^ 8): Iti = 2 'B,D,F,I い Case (2 ^ 2 + 2 ^ 3 + 2 ^ 5 + 2 ^ 8): Iti = 3 'C,D,F,I う Case (2 ^ 0 + 2 ^ 4 + 2 ^ 5 + 2 ^ 8): Iti = 4 'A,E,F,I え Case (2 ^ 1 + 2 ^ 4 + 2 ^ 5 + 2 ^ 8): Iti = 5 'B,E,F,I お Case (2 ^ 2 + 2 ^ 4 + 2 ^ 5 + 2 ^ 8): Iti = 6 'C,E,F,I か Case (2 ^ 0 + 2 ^ 3 + 2 ^ 6 + 2 ^ 8): Iti = 7 'A,D,G,I き Case (2 ^ 1 + 2 ^ 3 + 2 ^ 6 + 2 ^ 8): Iti = 8 'B,D,G,I く Case (2 ^ 2 + 2 ^ 3 + 2 ^ 6 + 2 ^ 8): Iti = 9 'C,D,G,I け Case (2 ^ 0 + 2 ^ 4 + 2 ^ 6 + 2 ^ 8): Iti = 10 'A,E,G,I こ Case (2 ^ 1 + 2 ^ 4 + 2 ^ 6 + 2 ^ 8): Iti = 11 'B,E,G,I さ Case (2 ^ 2 + 2 ^ 4 + 2 ^ 6 + 2 ^ 8): Iti = 12 'C,E,G,I し Case (2 ^ 0 + 2 ^ 3 + 2 ^ 7 + 2 ^ 8): Iti = 13 'A,D,H,I す Case (2 ^ 1 + 2 ^ 3 + 2 ^ 7 + 2 ^ 8): Iti = 14 'B,D,H,I せ Case (2 ^ 2 + 2 ^ 3 + 2 ^ 7 + 2 ^ 8): Iti = 15 'C,D,H,I そ Case (2 ^ 0 + 2 ^ 4 + 2 ^ 7 + 2 ^ 8): Iti = 16 'A,E,H,I た Case (2 ^ 1 + 2 ^ 4 + 2 ^ 7 + 2 ^ 8): Iti = 17 'B,E,H,I ち Case (2 ^ 2 + 2 ^ 4 + 2 ^ 7 + 2 ^ 8): Iti = 18 'C,E,H,I つ Case (2 ^ 0 + 2 ^ 3 + 2 ^ 5 + 2 ^ 9): Iti = 19 'A,D,F,J て Case (2 ^ 1 + 2 ^ 3 + 2 ^ 5 + 2 ^ 9): Iti = 20 'B,D,F,J と Case (2 ^ 2 + 2 ^ 3 + 2 ^ 5 + 2 ^ 9): Iti = 21 'C,D,F,J な Case (2 ^ 0 + 2 ^ 4 + 2 ^ 5 + 2 ^ 9): Iti = 22 'A,E,F,J に Case (2 ^ 1 + 2 ^ 4 + 2 ^ 5 + 2 ^ 9): Iti = 23 'B,E,F,J ぬ Case (2 ^ 2 + 2 ^ 4 + 2 ^ 5 + 2 ^ 9): Iti = 24 'C,E,F,J ね Case (2 ^ 0 + 2 ^ 3 + 2 ^ 6 + 2 ^ 9): Iti = 25 'A,D,G,J の Case (2 ^ 1 + 2 ^ 3 + 2 ^ 6 + 2 ^ 9): Iti = 26 'B,D,G,J は Case (2 ^ 2 + 2 ^ 3 + 2 ^ 6 + 2 ^ 9): Iti = 27 'C,D,G,J ひ Case (2 ^ 0 + 2 ^ 4 + 2 ^ 6 + 2 ^ 9): Iti = 28 'A,E,G,J ふ Case (2 ^ 1 + 2 ^ 4 + 2 ^ 6 + 2 ^ 9): Iti = 29 'B,E,G,J へ Case (2 ^ 2 + 2 ^ 4 + 2 ^ 6 + 2 ^ 9): Iti = 30 'C,E,G,J ほ Case (2 ^ 0 + 2 ^ 3 + 2 ^ 7 + 2 ^ 9): Iti = 31 'A,D,H,J ま Case (2 ^ 1 + 2 ^ 3 + 2 ^ 7 + 2 ^ 9): Iti = 32 'B,D,H,J み Case (2 ^ 2 + 2 ^ 3 + 2 ^ 7 + 2 ^ 9): Iti = 33 'C,D,H,J む Case (2 ^ 0 + 2 ^ 4 + 2 ^ 7 + 2 ^ 9): Iti = 34 'A,E,H,J め Case (2 ^ 1 + 2 ^ 4 + 2 ^ 7 + 2 ^ 9): Iti = 35 'B,E,H,J も Case (2 ^ 2 + 2 ^ 4 + 2 ^ 7 + 2 ^ 9): Iti = 36 'C,E,H,J や End Select Cells(2, 4) = Mid(Hira, Iti, 1) Application.ScreenUpdating = True End Sub

画像

この返信は削除されました

ThanksImg質問者からのお礼コメント

この度はありがとうございました。 完璧に回答いただいて感謝しています。 知恵コインではなく本当に謝礼したい気持ちです。 またお力添えをお願いする場面があるかもしれませんが、その際はよろしくお願いします。 本当にありがとうございました。

お礼日時:9/20 11:43