- 締切済み
Excel2007で行指定して数字を記号に変換
いつもお世話になってます。 X列の1マス1マスに0~9の数字のいずれかが入ると、X列に入った0~9の値に反応して、そのX列の1マスを水平上にかつ、中心として、V列W列とY列Z列のセルに0~9の数字のいずれかが入ります。 更に、V列W列とY列Z列に入った数値を記号に変換して、その変換内容は 0が●で 1~9は× になります。 マクロボタンを押すと 行指定ができるダイアログボックスが出て来て 行指定されたセルXに0~9の数字を0から1つずつ入れて 別sheetの、0の場合はB20にV列の値を、W列はC20、Y列はD20、Z列はE20にと変換内容に沿ってコピペしたいです。 Xに3が入るということは、別sheetの(B23:E23)に変換された記号が入ってる形であることが正解の形になります。 私の下手な質問がおおまかにご理解して頂けたと思いますので、ここから質問を綺麗にまとめます。 Asheet上にあるマクロボタンからBsheetのX列の行番号指定に始まり、その行番号指定したXセルに0~9が1つずつ入りますと、セルA20~A29に0~9と数字を付ってますので V列はAsheetのB20から下に、W列はAsheetのC20から下に、Y列はAsheetのD20から下に、Z列はAsheetのE20から下に マクロボタンで行指定する度に変換内容に沿って変換された記号が(B20:E20)~(B29:E29)にと一気にずらーっと入ってるのが希望なんです。 ご協力頂けたら嬉しい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問の意味がよくわからない。 質問者にしか起こりえない必要性のようだし。 参考までに上げてみる。 == シートはSheet1とSheet2とする。 Sheet1のX列に数字を入力するとする。 Sheet1のChangeイベントを使って Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False 'changeイベント一時停止 If Target.Column <> 24 Then Exit Sub 'X列以外ならスルー '--数字チェック If Not IsNumeric(Target) Then GoTo p1 'ーー1桁数字チェック If Target > 9 Or Target < 0 Then GoTo p1 '--OKの場合 MsgBox Target '確認用 '--Sheet1の同行v,W,Y,Z列に数字をセット Target.Offset(0, -2) = Target 'V列 Target.Offset(0, -1) = Target 'W列 Target.Offset(0, 1) = Target 'Y列 Target.Offset(0, 2) = Target 'Z列 '-- y = Target '--数字から対応する記号に変換 x = Application.WorksheetFunction.Choose(y + 1, "●", "×", "×", "×", "×", "×", "×", "×", "×", "×") '--Sheet2に、その記号をセット y = InputBox("Sheet2の行指定すること") Worksheets("Sheet2").Cells(y + 20, "A").Offset(0, 1) = x Worksheets("Sheet2").Cells(y + 20, "A").Offset(0, 2) = x Worksheets("Sheet2").Cells(y + 20, "A").Offset(0, 3) = x Worksheets("Sheet2").Cells(y + 20, "A").Offset(0, 4) = x Application.EnableEvents = True GoTo p2 p1: MsgBox "0-9の数字入力のこと" Target = "" p2: Application.EnableEvents = True End Sub 基本的に、処理は、シートのセルへの「値の代入」でしかないようなので、何で詰まっているのかわからない。