Excelのマクロで以下のようなことを実現したいのですが、さんざん考えた割にわからなくななってしまいました。どうぞよろしくお願い致します。

http://www.geocities.jp/yukitsun001/Book1.xls

今、sheet1のE2,F2,G2に「ボタン」を押すたびに、以下のように表示されるように
します。

★C2に「2」が代入されているとき
 1回ボタンを押すと、sheet1のE2,F2,G2に
 東京大泉池袋2
 と表示される
 もう1回ボタンを押すと、sheet1のE2,F2,G2に
 志村池袋2
 と表示される
 以下同様
★C2に「3」が代入されているとき
 1回ボタンを押すと、sheet1のE2,F2,G2に
 南板橋別館池袋3
 と表示される
 もう1回ボタンを押すと、sheet1のE2,F2,G2に
 池袋池袋3
 と表示される
 以下同様

つまり、sheet1のE2,F2,G2には、sheet1のC2の数値に該当するsheet2のマトリックス
の行が次々と登場するようなマクロです。

簡単かもしれませんが、どうぞよろしくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント25pt

Dim t As Integer

Dim k As String

Private Sub CommandButton1_Click()

If Cells(2, 5) <> ”” Then

’入力済み

If k <> Cells(2, 3) Then

’新規?

k = Cells(2, 3)

t = 1

End If

Else

k = Cells(2, 3)

t = 1

End If

t = t + 1

For a = t To 50

If Sheet2.Cells(a, 7) = k Then

t = a

Cells(2, 5) = Sheet2.Cells(a, 5)

Cells(2, 6) = Sheet2.Cells(a, 6)

Cells(2, 7) = Sheet2.Cells(a, 7)

Exit For

End If

Next a

End Sub

ボタンが クリックイベントに対応しなかったので、別に 貼り付けてみました。

こんなので どうでしょう?

id:miku1973

ありがとう!ちょっとやってみます!

2004/08/10 19:25:07
id:teztez No.2

回答回数62ベストアンサー獲得回数0

ポイント25pt

http://www.hatena.ne.jp/1092046906#

Excelのマクロで以下のようなことを実現したいのですが、さんざん考えた割にわからなくななってしまいました。どうぞよろしくお願い致します。 http://www.geocities.jp/yu.. - 人力検索はてな

If Cells(2, 3) = 2 Then

If Cells(2, 5) = ”東京大泉池袋2” Then

Cells(2, 5) = ”志村池袋2”

Else

Cells(2, 5) = ”東京大泉池袋2”

End If

ElseIf Cells(2, 3) = 3 Then

If Cells(2, 5) = ”南板橋別館池袋3” Then

Cells(2, 5) = ”池袋池袋3”

Else

Cells(2, 5) = ”南板橋別館池袋3”

End If

Else

Cells(2, 5) = ””

End If

いかがですか?

id:miku1973

んー、Cells(2, 3)これだと2や3以外だとだめ

なんじゃないかな?

2004/08/10 19:26:23

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 teztez 62 52 0 2004-08-09 20:12:25
2 ohmix1 235 214 14 2004-08-16 12:47:34
  • id:teztez
    マクロ

    このたびはとんちんかんな回答だったうえにポイントまでいただいて
    しまってすみませんでした。
    きちんと動くと思われる物ができていますので、
    ここでご報告させていただきます。

    まず、標準モジュールのModule1の中に次のプログラムを書いてください

    Option Explicit
    Public a As Integer

    Sub ボタン1_Click()
    Dim C2 As Integer
    Dim moji1 As String
    Dim moji2 As String
    Dim suuji As String
    If Cells(2, 3) = ”” Then
    C2 = 999
    Else
    C2 = Cells(2, 3)
    End If
    a = a + 1
    Do While Sheet2.Cells(a, 7) <> C2 And a <= 50
    a = a + 1
    Loop
    If a > 50 Then
    a = 1
    End If
    Cells(2, 5) = Sheet2.Cells(a, 5)
    Cells(2, 6) = Sheet2.Cells(a, 6)
    Cells(2, 7) = Sheet2.Cells(a, 7)
    End Sub



    次に、Microsoft Excel Objects のSheet1にこれを書いてください。


    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 Then ’And Target.Rows = 2 Then
    a = 1
    End If
    End Sub



    最後に、Microsoft Excel Objects のThis workbookにこれを書いてください。

    Private Sub Workbook_open()
    a = 1
    Worksheets(1).Activate
    Cells(2, 3) = ””
    Cells(2, 5) = ””
    Cells(2, 6) = ””
    Cells(2, 7) = ””

    End Sub

  • id:miku1973
    Re:マクロ

    ありがとうございました!
    バッチリできました。

    マクロはちょっと苦手なので、作っていただいたのをもとに
    どういう仕組みになっているのか自分なりに解析してみたいと
    思います。

    本当にありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません