プロが教えるわが家の防犯対策術!

Excel VBAについてです。

少しだけ知識はあるのですが、
うまくいかなかったので
質問させていただきます。

下記システムをVBAで作ろうと考えています。
イメージ写真も添付します。
■作成したいシステム(写真①)
ある測定マップデータを座標指定して
列ごとリジェクトする
座標を登録するためのシステム作り

ユーザーフォームにて
座標登録する仕組みは作成済みです。
写真②の入力用フォームに値が入ります。
ユーザーフォーム登録ボタン実行時に
今回の処理を行いたいです。
2回目以降用に実行ボタン作成予定です。

まず、前提として入力用フォームの
X座標、Y座標両方のセルに
値が入ることはありません。どちらかのみです。

写真②はX座標に
1〜3と登録された場合です。

X座標の1〜3列をリジェクトしたいため
Yが1〜5まで可変します。
それを1〜3まで繰り返す。

写真③は逆の処理です。
Y座標に1〜3と登録された場合

写真④は座標登録処理2回目です。
1回目のデータの下に入るようにしたいです。


For nextを使ってやってみたのですが
うまくできませんでした。
教えていただきたいです。

説明下手で、すみません。
よろしくお願いします。

「Excel VBAについてです。 少しだ」の質問画像

質問者からの補足コメント

  • その認識であっています。
    色をつける仕組みは出来ているので
    座標を入力する仕組みのみを作りたいです。
    XとYどちらかしか入力しない仕組みで
    入力された方(例:X1〜3)は固定で
    Y1〜5まで1つずつ増えて入力していきたいです。

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/09/14 13:32
  • なるほど!
    一度試してみます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/09/14 13:32

A 回答 (3件)

こんばんは。



何となくでの回答になりますが、X用とY用で分けて作れば良いのでは?と
思いますが。 試していないので、違った結果でしたら、すみません。
あと、Dimなどは記載を省いているので、記載して下さい。


n=2 'A列の空白セルの行を入れる。 End(xlup).Row+1など
If Range("E1").Value >0 then
For I=Range("E1").Value to Range("G1").Value
For J=1 to 5
Cells(n,1).Value=I
Cells(n,2).Value=J
n=n+1
Next J
Next I
Else If Range("E2").Value >0 then
For I=Range("E2").Value to Range("G2").Value
For J=1 to 5
Cells(n,1).Value=J
Cells(n,2).Value=I
n=n+1
Next J
Next I
End If
この回答への補足あり
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございました!
やりたかったことが上手くできました!

お礼日時:2022/09/15 17:47

「Sheet1のA列B列にデータを追加したら、そのA列B列の値で指定されるセルに色をつけて、色の着いている領域を、排除領域として視覚的に表現したい」という部分だと、Sheet1にデータを追加して書き終えたら、次のマクロを駆動すると、Sheet2に色はつきます。


でも、変ですよね。 やりたいことのイメージがつかないです。

Dim Sht1, Sht2
Dim LasR, i, jL, jR
Set Sht1 = Sheets(1): Set Sht2 = Sheets(2)
LasR = Sht1.Cells(Rows.Count, 1).End(xlUp).Row
Sht2.Activate
Cells.Interior.Pattern = xlNone
For i = 2 To LasR
jL = Sht1.Cells(i, 1): jR = Sht1.Cells(i, 2)
Range(Cells(i - 1, jL), Cells(i - 1, jR)).Interior.ColorIndex = 9
Next
「Excel VBAについてです。 少しだ」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとう

回答していだき、ありがとうございました。

お礼日時:2022/09/15 17:48

なさりたいことのイメージがよく分かりません。


「フォームに入力・確定させたら、そのデータを元に、Sheet1のA列B列にデータを追加していく」ということが目標でしょうか。
「Sheet1のA列B列にデータを追加したら、そのA列B列の値で指定されるセルに色をつけて、色の着いている領域を、排除領域として視覚的に表現したい」ということが目的でしょうか。

{X座標に1〜3と登録入力したら、Yが1〜5まで可変します。それを1〜3まで繰り返す}
「1〜5まで可変します」と書かれていますが、指定してない方の座標はいつも1~5の固定の5つ」のように見えますが、それで良いのでしょうか。
「Excel VBAについてです。 少しだ」の回答画像2
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとう

回答いただきありがとうございました。

お礼日時:2022/09/15 17:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング