前回お世話になりました。ありがとうございます。
下記の内容でまた質問させていただきました。よろしくお願いしたします。
[状況]
管理シート名〈テーブル〉に下記のように各項目があります。
F列 ........H列 .......Q列
主加工 総時間 実績時間
MC
M
L
これとは別に〈MC〉,〈M〉,〈L〉の同様のシートがあります。
〈テーブル〉で全体の管理をできるようにしており〈MC〉,〈M〉,〈L〉はリンクさせた表です。
〈MC〉,〈M〉,〈L〉それぞれの表は”F列主加工”のデータフィルでMCはMC、MはM、LはLだけが表示されるようにしています。
〈テーブル〉の”F列主加工”にはMC,M,Lがランダムに現れます。
[教えていただきたいこと]
総時間はテーブルで管理しており、〈MC〉,〈M〉,〈L〉にはリンクされています。
加工終了後、実績時間を〈MC〉,〈M〉,〈L〉それぞれの担当者が記入できるようにします。
〈MC〉,〈M〉,〈L〉で実績時間が担当者から記入されると〈テーブル〉に実績時間が表示されて総時間がクリアされるようにしたいのですが、VBAになるのでしょうか?やり方がわかりません。
VBAは勉強し始めたばかりです。丁寧に教えていただけると大変ありがたいです。
できましたら、
・一つのBOOKで〈テーブル〉,〈MC〉,〈M〉,〈L〉シート別で行った場合
・別々のBOOKで行った場合
のご教授よろしくお願いします。
よろしくお願いしたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
想像で作ってみました(別々のBOOKの場合です)。
参考になれば幸いです。下記のプログラムをMCブックの標準モジュールに張り付けて下さい。
sample1を実行するとMCブックにTABLEシートをコピーして、実績時間(Q列)をクリアし、さらにフィルタをかけます。
実績時間を入力後、sample2を実行するとTABLEブックの実績時間を更新します。
Option Explicit
Const strTABLE As String = "C:\Users\教えてGoo\TABLE.xlsx"
Const strSHEET As String = "TABLE"
Const strKEY As String = "MC"
Dim wsTemp As Worksheet
Sub sample1()
Set wsTemp = Workbooks.Add(strTABLE).Sheets(strSHEET)
wsTemp.Copy Before:=ThisWorkbook.Sheets(1)
wsTemp.Parent.Close (False)
Set wsTemp = ActiveSheet
wsTemp.Range("Q2:Q" & Rows.Count).ClearContents
wsTemp.Range("A1").CurrentRegion.AutoFilter field:=6, Criteria1:=strKEY
End Sub
Sub sample2()
Dim wsTABLE As Worksheet
Dim LastRow As Long
Dim I As Long
Dim RowNo As Long
On Error GoTo ErrorHandler
LastRow = wsTemp.Cells(Rows.Count, "A").End(xlUp)
On Error GoTo 0
Set wsTABLE = Workbooks.Open(strTABLE).Sheets(strSHEET)
For I = 2 To LastRow
If wsTemp.Cells(I, "Q") <> "" Then
RowNo = wsTemp.Cells(I, "A")
wsTABLE.Cells(RowNo, "Q") = wsTemp.Cells(I, "Q")
End If
Next I
wsTABLE.Parent.Close (True)
ErrorHandler:
End Sub
それから、上記サブプロシジャの実行タイミングですが、MCブックを開く時にsample1を。閉じる時にsample2を実行するのが簡単かと思います。こんな感じです。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call sample2
ThisWorkbook.Saved = True
End Sub
Private Sub Workbook_Open()
Call sample1
End Sub
ありがとうございます。お礼が遅れてすみません。
何とか理解しようと試みましたが、今の私の知識では???です。すみません。
もう少し整理してから教えていただきたい点をまとめたいと思いますので、その時にお知恵拝借できますか?よろしくお願いします。
No.1
- 回答日時:
〈テーブル〉→〈MC〉はリンクでできているようですが、〈MC〉→〈テーブル〉は無理だと思います(少なくとも私には・・・)。
VBAを使って〈テーブル〉シートに書き込む必要があると思います。やり方としては、〈テーブル〉シートに行を表す項目を作ります。例えば、A列に =Rows()とします。これを〈MC〉へ連動させ、〈MC〉側では、その値を目印に〈テーブル〉シートの実績時間セルを特定し、書き込みを行います。
〈テーブル〉シートが別ブックの場合は、ブックのオープン、書き込み、ブックの保存の処理が必要です。
いずれにしても、初心者には敷居が高そうですが、頑張ってください。
ありがとうございます。
おっしゃるように初心者にかなり敷居が高いです。
が、これができればかなり使いやすい表になり、なんとか実現させたいと思います。
また何かアドバイスよろしくお願いします。
A列には=Row()を入れていますが、活用できていないです。
もっと工夫してみます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- スピーカー・コンポ・ステレオ MCカートリッジのオススメを教えてください。 お時間割いてくださりありがとうございます。 当方、現在 10 2022/07/04 14:20
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ADOでSeekメッソッドが使えませ...
-
エクセル
-
レプリケーションしているテー...
-
クエリのキャンセルがいつにな...
-
AccessからOrcleのODBCリンクテ...
-
アクセス97のリレーションシ...
-
SQL2000サーバーのテーブル容量...
-
SQL 件数取得を速くしたい
-
「マスタ」と「テーブル」の違...
-
Accessのリンクテーブルについて
-
【PostgreSQL】行の値の並びを...
-
ACCESSのSQLで、NULLかNULLでな...
-
ManagementStudioからのデータ削除
-
一部重複しているレコードの削除
-
別のテーブルの値を抽出条件と...
-
ACCESS 一番最新の日付の金額...
-
SQL関数とレスポンスについて
-
There is no point in ~ing ...
-
SQLServer Insertが遅い
-
indexの使用頻度を調べる方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでテーブルの最終行が...
-
クエリのキャンセルがいつにな...
-
accessテーブル作成クエリを実...
-
ユニオンクエリの結果をテーブ...
-
SI Object Browserのテーブルス...
-
UNIONなどで複数のテーブルから...
-
あるテーブルのデータを追加、...
-
ストアドをまたがるローカル一...
-
Accessにインポートした複数の...
-
コンボボックスで入力したもの...
-
列サイズ変更時、DB停止は必要?
-
SQLサーバーのテーブルの値...
-
Access のリレーションシップで...
-
レプリケーションしているテー...
-
位置を指定してフィールドを追...
-
SQLスクリプトを自動生成する方法
-
テーブル作成クエリで新テーブ...
-
ADOでSeekメッソッドが使えませ...
-
excel テーブル
-
VIEWしか読み取れないユーザの...
おすすめ情報