重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

【やりたい事】
下記画像をご覧ください
図1のC2セルのデータ【2025/6/3/ 12:00】を図2のB4セルに値貼付けしたい

【手順】
1【条件1】図2のA列と本日(today例:6/3)、事例だと6/3を一致(当日作業という意味)を確認

2【条件2】図1のファイル名の先頭【タスクA】と
 1行目のタスク名【タスクAアウトバウンド】の部分一部一致を確認⇒図2のB1セル

3B1からの最終行(lastrow)を調べる⇒B3セルと確認

4図1のC2セルの値を、B4セル(lastrow+1,"B")に値貼付けする

【ファイルパス】
図1↓
C:\Users\user\Documents\ツール\ダウンロード場所\ファイル名変更場所\タスクA20250529123939.xls

図2↓
C:\Users\user\Documents\ツール\時間管理シート.xlsx

【ファイル名】
図1↓
タスクA20250529123939.xls

図2↓
時間管理シート.xlsx

「【マクロ画像あり】❶1つの条件一致❷1つ」の質問画像

A 回答 (3件)

>ideone.comのコード表示は大変便利なのですが


>ここは誰でも使えるのでしょうか?
>費用はかかるのでしょうか?
>詳細は調べますので、簡単に教えて頂けると幸いです

回答:登録すれば、だれでも無料で利用できます。

>21行目
>以下は、コードではなく、コメントでしょうか?
>'Len(srcName) <= 18の場合

回答:
コメントではありません。コードです。
但し、このケースの場合、エラー表示後、終了するのが正しい処理なので、以下のようにしてください。
Exit Subを追加します。
-------------------------------------------------
If Len(srcName) <= 18 Then
MsgBox ("該当ファイルが無いか又はファイル名が短すぎます")
Exit Sub
End If


>32行目
>以下でデバックとなります。原因が想定できますでしょうか?
>maxRow = tws.Cells(Rows.Count, "A").End(xlUp).Row

回答:ここでエラーとなるのは、考えにくいです。
Set tws = tbk.Worksheets("Sheet1") の行であれば、エラーとなるケースは想定可能ですが・・・・。
本当に、maxRow = tws.Cells(Rows.Count, "A").End(xlUp).Rowで
エラーが発生していますか。そうであれば、エラーメッセージの内容は
どのようになってますでしょうか。
    • good
    • 0

下記URLにアップしました。


https://ideone.com/d51yTd

コピー元のシート名:Sheet1
コピー先のシート名:Sheet1
にしてあります。あなたの環境に合わせて適切に設定してください。
27行:Set sws = sbk.Worksheets("Sheet1")
30行:Set tws = tbk.Worksheets("Sheet1")
を変えてください。
    • good
    • 1
この回答へのお礼

tatsumaru77 様

ideone.comのコード表示は大変便利なのですが
ここは誰でも使えるのでしょうか?
費用はかかるのでしょうか?
詳細は調べますので、簡単に教えて頂けると幸いです

21行目
以下は、コードではなく、コメントでしょうか?
'Len(srcName) <= 18の場合

32行目
以下でデバックとなります。原因が想定できますでしょうか?
maxRow = tws.Cells(Rows.Count, "A").End(xlUp).Row

お礼日時:2025/06/08 09:05

いくつか不明点があります。



1.条件1について
「【条件1】図2のA列と本日(today例:6/3)、事例だと6/3を一致(当日作業という意味)を確認」
ということですが、図2のA列は、図1のC列の間違いですか。

上記の条件1を以下のように解釈しましたが、合ってますか。
①システム日付を取得し、その日付と一致するものを図1のC列から検索する。
②一致した場合、そのセルを転記元のセルとする。例ではC2のセル。(該当セルが複数の場合は最初に一致したセルとする)

2.条件2について
①図2のタスク名は、B列、C列、D列に格納されていますか。
②検索対象とする行は、B列、C列、D列の1行目と10行目、19行目ですか。(1,10,19は固定)

3.ファイルのタスク名の取得方法について
タスクA20250529123939.xls のタスク名は タスクA ですが、
これは、
ファイル名 タスクA20250529123939.xls から
右側の18文字(20250529123939.xls)を除いたものをファイル名としますがそれでよいですか。
(拡張子は常にxlsであることが前提、xlsx,xlsmのような拡張子のファイルはない前提)
    • good
    • 0
この回答へのお礼

大変、申し訳ございません。画像不鮮明とお礼文字数制限ある為
意味伝わらない場合再度、投稿します

【前提】
⇒前提に⇒図1は、WEBからダウンロードするデータ
⇒6/3に当日に作業をし、当日のデータを取得という前提です
⇒6/3に作業をし、6/2や5/31はありえないという意味です
⇒種類は3種類という意味です。タスクA。タスクB。タスクC。
⇒図1のダウンロードデータを約6回/1日にダウンロードします
⇒タスクAが2回。タスクBが2回。タスクCが2回です
⇒当該ダウンロードデータのC2セルを台帳の図2に転記したいです

1.条件1について
⇒システム日付6/3と図2の台帳A列の日付の6/3の一致を確認します
図1のC列ではないです
⇒図2の台帳A列は、6/1-6/30までが記載あり
⇒作業は当日する前提。図1のC列は、今回の例だと6/3しかありません
⇒①システム日付を取得、その日付と一致するものを図2のA列から検索する⇒台帳に転記したいデータは、常に図1のダウンロードデータのC2セル
⇒C2セルはダウンロードデータの常に最新時間を表しています
⇒骨子は、図1のダウンロードデータ1つにつき、1つのC2データを
⇒図2のどこの場所に転記するかを自動でしたいです

2.条件2について図2例
A1⇒6/3、B1⇒タスクAアウトバウンド、C1⇒タスクBアウトバウンド
D1⇒タスクBアウトバウンド、図2は、以下、6/30まで続きます
②検索対象とする行は、B列、C列、D列の1行目と10行目、19行目ですか。(1,10,19は固定)⇒固定ですが⇒28行、30行と続きます。6/30まで
⇒B2と一致します、⇒6/3なので1行目だけでOKです
10行目は6/9。19行目は6/5のためです

3.ファイルのタスク名の取得方法について
タスクA20250529123939.xls のタスク名は タスクA ですが、
これは、ファイル名 タスクA20250529123939.xls から
右側の18文字(20250529123939.xls)を除いたものをファイル名としますがそれでよいですか。(拡張子は常にxlsであることが前提、xlsx,xlsmのような拡張子のファイルはない前提)⇒あっています。右側18文字をのぞいたもので⇒結果、タスクA、タスクB、タスクCとなります

お礼日時:2025/06/03 18:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A