• 締切済み

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)にと一気にずらーっと入ってるのが希望なんです。 ご協力頂けたら嬉しい。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

質問の意味がよくわからない。 質問者にしか起こりえない必要性のようだし。 参考までに上げてみる。 == シートは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 基本的に、処理は、シートのセルへの「値の代入」でしかないようなので、何で詰まっているのかわからない。

関連するQ&A

  • 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)にと一気にずらーっと入ってるのが希望なんです。 再度ご協力頂けたら嬉しいです。

  • エクセル 行と列入れ替え

    エクセルで隣り合う二つのセルを一単位として 行と列を入れ替えるにはどうすればいいでしょうか。 例えば、   A B C D E F 1 U V W X Y Z を   A B 1 U V 2 W X 3 Y Z のように一括に処理する方法があれば教えて下さい。

  • 【EXCEL】指定したセルの値を他セルに代入する

    EXCELにおいて、 あるセルD1で記入したアルファベットX(列指定情報) あるセルE1に記入した数字Y、(行指定情報) において、 あるセルF1=X行Y列のセルの値 というふうにするにはどのようにすればよろしいでしょうか? よろしくお願いいたします。 以下は例です ---------------------------- # A B C D E F 1 12 ## A 3 34 2 23 3 34 4 54 5 89 ----------------------------

  • Excel2007で同じ数字記号全部に 色を塗り

    Excel2007で同じ数字記号全部に色を塗り何個あるかカウントしたいです。 (C5:T5)と(Z5:AQ5)のセル1つずつに0~9のいずれかの数字がランダムに入ってます。 W5に0~9 のいずれかの数字が入ります。 その数字を参照して(C5:T5)と(Z5:AQ5)の中にある同じ数字のセルの背景色を黄色に塗りつぶします。 そして、(C5:T5)の分はV5に (Z5:AQ5)の分はX5に、W5に入ってる数字を参照して何個有ったのかをカウントしたいです。 マクロでなくても良いのでよろしくお願いいたします。

  • 【Excel VBA】指定した行の最大値を持つセル番地を取得したい

    指定した範囲内で最大値及び最小値のセル番地を取得するには、 どうコーディングしたらよろしいでしょうか? 対象範囲 A1:Z2000の各行(行番は変数で処理) 例えば、 ---------------------------------------------------- For x = 1 To 2000 Range(A列のx行目:A列のx行目)の最大値 → B列                最小値 → Y列 Next x ---------------------------------------------------- このように、2000行分同じことを繰り返し、それぞれの行内での 最大値及び最小値を含むセルの列名を取得し、 B列のx行目を赤(最大値) Y列のx行目を青(最小値) に着色したいのです。 よろしくお願いします。

  • Excel2007 。数値を記号化したいです。

    セル範囲(A16:C2700)に、1~18のいずれかの数値がびっしり入ってます。 それらをセル範囲(E16:G2700)にアルファベット記号にして入れたいです。 1、2=A 3、4=B 5、6=C 7、8=D 9、10=E 11、12=F 13、14=G 15、16=H 17、18=I にしたいです。 範囲(A:C)の2700行目以降も3列1行目ずつ追加されるのでそれも同時に変換して(E:G)の2700行目以降にペイストしたいです。 お願い致します。

  • エクセル データ並び変換(縦から横) 不要行削除

    同一キーに属する複数データが縦並び(行)になっているのを横並び(列)に直して、下段の データを行ごと削除したいのですが、どのような方法が考えられますでしょうか? キーの数は不特定で空白行はありません。データはキーも含めて、全て文字列です。 発想が貧困なもので、何から手を付けて良いかわかりません。お手数ですが、ご教示ください。   A  B  C 1  x  a 2  x  b 3  y  c 4  y  d 5  z  e 6  z  f ・ ・ ・ 199 200 ・ ↓   A  B  C 1  x  a  b 2  y  c  d 3  z  e  f ・ ・ ・ 99 100 ・

  • 行の連続数字を見つけて塗潰す方法

    どなたかご存知でしたら回答をよろしくお願いします。 【質問】 下図の様に5×5のセルが4つあり、それぞれ1~99迄の数字がランダムに 重複有りで入っています。5×5のセルの中には行の連続数字(例:02 03) が入っています(1個も無い場合もあります)。 行の連続数字を見つけたら、その連続数字のセルを塗潰す方法が知りたいです。  ・2連続・・・黄色で塗潰す。   ・3連続・・・赤色で塗潰す。  ・4連続・・・青色で塗潰す。  ・5連続・・・緑色で塗潰す。  A B C D E F  G H I J K   1 01 07 09 11 22     03 10 20 30 31 2 04 12 14 15 23     01 02 07 09 22 3 07 13 17 18 25     04 11 12 14 15 4 06 16 21 24 26     02 13 17 18 23 5 08 19 27 28 29     06 16 24 25 26 6 7 05 09 11 26 30     03 06 13 22 27 8 04 10 15 19 24     03 14 25 28 29 9 01 14 20 25 29     05 11 18 20 21 10 07 18 21 23 31     07 08 16 23 31 11 02 08 12 16 17     02 03 12 17 27 【結果】 上記4つある5×5のセルには、10個の重複数字がありその数字のセルが塗潰されます。 (1)14 15  (2)17 18 (3)27 28 29 (4)30 31 (5)14 15 (6)24 25 26 (7)16 17 (8)28 29 (9)07 08 (10)02 03 【注意事項】  ・使用するエクセルは2010です。  ・セルの中の数字は2桁で表しています。(例:1ではなく01)  ・5×5のセルの位置は下記のとおりです。    1個目の5×5マス・・・A1~E5    2個目の5×5マス・・・G1~K5      3個目の5×5マス・・・A7~E11    4個目の5×5マス・・・G7~K11  ・回答はVBでも関数でも構いません。 以上、よろしくお願いします。

  • 1つのセルに入っている7つの数字を分解する方法。

    どなかたご存じでしたらご回答よろしくお願いします。 【質問】  エクセルワークシートのA列、B列、C列、D列にそれぞれ1行当たり 7つの数字が  入っているのが最大5行あります。これをエクセル機能である「区切り位置」を使わずに  1行を7列に分割する(実際には4列×7=28列)方法が知りたいです。  下記にイメージ図を書きます。  理想は、マクロが入ったワークシートに貼り付けてからボタンを押下すると分割された  結果がE列以降にでてくるのが良いです。 ★質問のイメージ図・・・分割前       A             B             C             D  01 06 08 13 16 22 25 07 18 19 23 28 30 33 02 06 10 23 28 34 37 04 10 16 18 19 23 37 03 12 23 24 25 29 36 03 09 15 17 18 34 36 11 18 26 27 33 35 36 13 16 21 26 27 32 37 04 07 19 20 28 33 36 01 06 17 25 26 30 35 02 06 12 13 17 19 32 04 09 11 15 16 31 34 01 10 14 20 24 29 35 05 12 14 22 24 28 37 03 15 21 29 30 32 36  05 11 17 19 24 27 32 01 06 07 08 29 33 35 08 15 24 26 28 31 34 ★質問のイメージ図・・・分割後(E列~AF列まで入る) E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD・・・・・ 01 06 08 13 16 22 25 07 18 19 23 28 30 33 02 06 10 23 28 34 37 04 10 16・・・ 03 12 23 24 25 29 36 03 09 15 17 18 34 36 11 18 26 27 33 35 36 13 16 21・・・ 04 07 19 20 28 33 36 01 06 17 25 26 30 35 02 06 12 13 17 19 32 04 09 11・・・ 01 10 14 20 24 29 35 05 12 14 22 24 28 37 03 15 21 29 30 32 36 05 11 17 19 24 27 32 01 06 07 08 29 33 35 08 15 24 26 28 31 34 【注意事項】  ・1つのセルに入っている7つの数字の間には、「半角スペース」が入っています。  ・分割後の結果はE列以降に出力します。  ・「最大5行」と書きましたが、1行しか無い場合もありまし、5行以上ある場合もあります。  ・使用するエクセルは2010です。 以上、よろしくお願いします。 

  • EXCEL 行と列を指定して、範囲指定する方法

    EXCELの使い方を教えてください。 関数で試みているのですが、以下のような操作を行うことは可能でしょうか? (マクロ(VBA?)は使用したことがないため、抵抗があります。それでも、マクロを組むしかないというのであればその方法も教えてください。) 「表示シート」にて行と列を指定することで、 結合された5行×5列の表を表示させたいのです。 指定するセルも結合させており(「入力シート」)、 結合されたセル(行/列)を指定して、表示する範囲を決めてやりたいのです。 結合を解いて、たくさんの文字を指定する形にしてしまえば楽かもしれないのですが、この2文字だけで他にもたくさん処理させているため、 指定する文字はこの2文字のみで処理させたいです。 自分なりには、「表示シート」のD10セル(F10まで結合されている)に =INDEX(SUMPRODUCT((入力!B3:B27=表示!D4)*(入力!C2:Z2=表示!D3)),1,2) というような関数を組んでみたのですが、うまく表示されません。 なにか、うまく表示させる方法はあるのでしょうか? ちなみに、表内の犬など狐などは便宜的に書いているだけで、 数字が入るセルか、日付が入るセルか、文字列が入るセルかということだけが汲み取っていただければと思います。 入力するセルと表示させるセルの大きさも異なるようにしたいので、 良い方法があれば教えてください。 よろしくお願いいたします。

専門家に質問してみよう