[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データを入力したら読込みさせるマクロ』(右近)
お尋ねいたします。
以下のマクロは、以前ご教授いただいたものです。
データーベースとして登録したデータを読み込みをさせるものです。
読込みのボタンをつくっておいて、それを押すと読込みができます。
これについて、教えていただきたいのですが、
例えば、C2セルに数字を入力した時点でデータを読込みさせるには、どこを修正する必要があるでしょうか。ご教授ねがいます。
Sub Posting_Output()
'データベースのデータを読込
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim v As Variant
Dim row1 As Long
Dim i As Long
'変数の設定
Set sh1 = Sheets(sh1Name)
Set sh2 = Sheets(sh2Name)
Set sh3 = Sheets(sh3Name)
v = sh3.Range("A1").CurrentRegion.Value
'データの存在チェック
If sh1.Range(v(2, 2)).Value = "" Then
MsgBox "日付が未入力なので読込できません。"
Exit Sub
End If
If WorksheetFunction.CountIf(sh2.Range("A:A"), sh1.Range(v(2, 2))) Then
row1 = WorksheetFunction.Match(sh1.Range(v(2, 2)), sh2.Range("A:A"), 0)
Else
MsgBox "該当の日付のデータがありません。"
Exit Sub
End If
'データの転記
For i = 2 To UBound(v, 1)
If v(i, 4) <> OneWay Then
sh1.Range(v(i, 2)).Value = sh2.Cells(row1, v(i, 3)).Value
End If
Next i
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
リクエスト内容に応えるとすれば、 イベントプロシージャというものを使うことになるでしょう。 例えば、下記参照。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html
で、今のコートを活かすには、シートモジュールに以下のようなコードを書いてみては?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$C$2" Then Exit Sub
If Target.Value <> "" And IsNumeric(Target.Value) Then
Application.EnableEvents = False
Call Posting_Output
Application.EnableEvents = True
End If
End Sub
(なお、提示のコードは見ておりません。)
ただ、イベントプロシージャにするより、 意識的にマクロ実行したほうがよいと感じます。
(γ) 2018/04/29(日) 07:11
> MsgBox "日付が未入力なので読込できません。" > Exit Sub
とか
> MsgBox "該当の日付のデータがありません。" > Exit Sub
の場合、日付を入力しなおしますか。
その際には、ボタンで読み込むのでしょうか。
> sh1.Range(v(2, 2))
それとも、v(2, 2)が、「C2」なのでしょうか
(マナ) 2018/04/29(日) 10:17
オリジナルは、↓のsyさんのコードですよね。
[[20170204150113]] 『データを蓄積したい。』
データを書き込むときのことも考慮すると
現在のボタンのクリックで実行のままが、よいかも知れません。
(マナ) 2018/05/03(木) 10:42
Set sh1 = Sheets(sh1Name)
Set sh2 = Sheets(sh2Name)
Set sh3 = Sheets(sh3Name)
これって機能するんでしょうか?
sh1Name、sh2Name、sh3Name がモジュールレベルなどで変数や定数として定義されていれば問題ないとおもいますが、質問文からはそれが読み取れないので、私が知らないだけで実はなんかの予約語だったりするんでしょうか?
Excel2007で「Option Explicit」つけてテストすると、変数が定義されてないってExcel君に怒られるんですが・・・
(もこな2) 2018/05/03(木) 11:50
(γ) 2018/05/03(木) 13:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.