ここから本文です

VBA初心者です。 下記のようなエクセルシートにつきまして、 A B C D E F G ...

tom********さん

2019/3/2015:21:47

VBA初心者です。
下記のようなエクセルシートにつきまして、

A B C D E F G H I
1 4月 5月 6月
2売上 原価 利益 売上 原価 利益 売上 原価

利益

*セルA1~C1/D1~F1/G1~H1は結合されています。

別シートのセルA1に対象月、B1に対象区分(例:5月/原価)が示されているとき、3行目の対象セルをアクティブにしたいと思います。
この場合、E3となります。

ご教授の程よろしくお願いいたします。
利益

*セルA1~C1/D1~F1/G1~H1は結合されています。

別シートのセルA1に対象月、B1に対象区分(例:5月/原価)が示されているとき、3行目の対象セルをアクティブにしたいと思います。
この場合、E3となります。

ご教授の程よろしくお願いいたします。

閲覧数:
19
回答数:
1

違反報告

ベストアンサーに選ばれた回答

kky********さん

2019/3/2108:45:09

元のシートをSheet1、別のシートをSheet2とします。

Sheet2のB1に入力したと同時に自動実行するイベントマクロです。
『Sheet2のシートモジュールに』下記をコピペして下さい。
B1セル入力で実行します。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim chk As Variant
Dim i As Long
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
If Range("A1").Value = "" Then
MsgBox "月が入力されていません"
Exit Sub
End If
With Worksheets("Sheet1")
Set rng = .Range(.Cells(1, 1), .Cells(1, .Cells(1, Columns.Count).End(xlToLeft).Column))
chk = Application.Match(Range("A1").Value, rng, 0)
If IsError(chk) Then
MsgBox "その月のデータはありません"
Exit Sub
End If
Select Case Target.Value
Case "売上"
i = chk
Case "原価"
i = chk + 1
Case "利益"
i = chk + 2
Case Else
MsgBox "区分が正しくありません"
Exit Sub
End Select
.Select
.Cells(3, i).Select
End With
End Sub


補足ですが、この質問のカテゴリは
スマートデバイス、PC、家電>Office系ソフトウェア>Excel
コンピュータテクノロジー>プログラミング>Visual Basic
です。カテゴリが適切でないと回答がつきにくいので、次回からご注意下さい。

  • 質問者

    tom********さん

    2019/3/2211:51:02

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

    いただいたマクロでうまくいきました。
    ありがとうございました。

    また、カテゴリ違いのご指摘今後注意いたします。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる