[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データを入力したら読込みさせるマクロ』(右近)
お尋ねいたします。
以下のマクロは、以前ご教授いただいたものです。
データーベースとして登録したデータを読み込みをさせるものです。
読込みのボタンをつくっておいて、それを押すと読込みができます。
これについて、教えていただきたいのですが、
例えば、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.