アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルシート間で検索、ジャンプ移動できるマクロをご教授願います。

以前勤めていた会社関連の子会社で臨時雇用されている高齢会社員です。
契約業務は生産部門で撮影された写真の中から構図、ピントがいい写真を選択し、
管理部門の写真フォルダーに登録する事を行っています。
選択した写真を写真フォルダーに登録する際、商品名で登録先写真フォルダーへの
パスリンクセルを見つけるのに時間がかかり苦労しています。
そのため登録先フォルダーを自動的に検索して移動できるマクロを教えて下さい。

具体的な説明

1.サーバーAにある(ブック:AA)の(シート:A-1)で生産部門写真フォルダーに
 移動して写真を選択、コピーします。(商品の管理上付与された3つの項目で分類)
 分類表は9行~1008行、写真にリンクされたセルはL列でY列、Z列、AA列で
 分類(属類、種目、品名)されています

 保存写真へのリンクセル、転記済入力セル、大項目セル、項目別分類セル
 L列          M列      X列    Y列、Z列、AA列

2.サーバーBにある(ブック:BB)の(シート:B-1)で上記の3つの項目が合致する
 写真登録フォルダーへのリンクセルを選択、クリックして写真を貼り付けします。
 8行~507行で写真登録にリンクされたセルと分類セルは大項目で3つの表が並び
 A列~E列、I列~M列、Q列~U列とそれぞれで縦方向3表の表構成となっています。


 大項目1の写真登録へのリンクセル、項目別分類セル  、登録済入力セル

      A列          B列、C列、D列  E列   

 大項目2の写真登録へのリンクセル、項目別分類セル  、登録済入力セル

      I列          J列、K列、L列  M列

 大項目3の写真登録へのリンクセル、項目別分類セル  、登録済入力セル

      Q列          R列、S列、T列  U列 
     
3.作業内容はA-1シート、B-1シートの両方を開き、A-1シートで転記が完了していない行の
  項目別分類セルの3セルで示される商品の写真をリンクセルのクリックで開き、選択、コピー
  B-1シートの項目別分類セルの3セルで示す同じ商品を検索し、合致する商品の登録リンク
  セルをクリック、写真を貼り付け、登録済入力セルで〇を選択入力、A-1シートへ移動、
  A-1シートの転記済入力セルで〇を選択入力して一つの商品の写真の選択、登録が完了です。
  以下商品毎に同じ事の繰り返し作業となっています。

  
4.シート:A-1、シート:B-1ともそれぞれマクロが組まれて、表の構成も別物となっているため
  同じ商品名をさがすのに苦労しています。又、同様なシート組み合わせが月別、県別で複数
  ありその複数分の業務処理で毎回苦労しております。
  


 要望するマクロはディスクトップ上に置く別のエクセルシート:検索に組み込んで使用したい。

 3つのシートの起動順序、1-シート:A-1、2-検索シート、3-シート:B-1で起動させ、

 検索シートの準備ボタンでシート;A-1のパス名、ブック名、シート名及びシート:B-1の

 パス名、ブック名、シート名を取得(マクロ作成で必要な情報だけで良いです)

 次にシート:A-1のある行の転記済入力セルをクリック、検索シートの検索ボタンをクリックし

 ある行のセル3列で分類された商品の値で、シート:B-1上のセル3列で表示された商品を検索し、

 該当商品の登録セル(セル列:A列 or I列 OR Q列 )へ移動、写真を登録したら、A-1シートの

 別行の別商品の処理を同様に繰り返し実施できるマクロを教えて下さい。

 ‏いろいろなサイトで条件に類似したマクロを探してみましたが、見つからず今回のお願いと

 となりました。宜しくご教授下さい。

A 回答 (7件)

No.6です。


Range.Findメソッドでは、お望みのような複数条件での検索はできないです。
やるとすれば、まず、商品名で検索した上で、区分1,区分2を確認。一致していない場合は、次を検索して確認・・・を繰り返す必要があると思います。

次を検索するには、Range.FindNext メソッドを使います。
区分1、区分2の位置が分からないの具体的な回答はできないのですが、商品名の前段(1行上?)であれば、r.offset(-1).value で参照できます。
    • good
    • 0

こんな書き方ができます。



findStr = Selection.Value

ただ、シートの指定はできなかったと思います。基本的には、アクティブシート上のカーソルがあるセルの値が返ってくるのですが、図形などを選択していると、思っていた値が返ってこないことがあるので、必要に応じて考慮が必要です。
エラー処理は、起こりうるエラーによって対応が異なるので、エラーが起こってから考えましょう!!
    • good
    • 0
この回答へのお礼

再度の回答有難うございます。
その後ネットで参考のなりそうなマクロを調べ、組み合わせて商品名で
別シートの商品名に移動することはできました。
アクティブ行の商品名を一度変数に取り込み、その値をsheet1の表欄
以外の空きセルに書き込み、そのセルの値で他ブックのsheet2内の
同じ商品名に移動できました。只、sheet2には同じ商品名のセルが
複数あり、目指すところは商品名の前段の区分け2か所を含むセル3列
の値で検索、移動させる事です。
アクティブセルを含み3つの連続セルの値で検索、移動させる事は可能
でしょうか。その方法がありましたら是非ご教授下さい。
完成途中の見苦しいマクロを掲示いたします。

Sub 商品別入力ジャンプ()
Dim r As Range
Dim s As String
s = ActiveCell.Value
Range("AA1").Value = s
Workbooks(2).Worksheets("sheet2").Activate
Set r = Workbooks(2).Worksheets("Sheet2").Cells.Find(Workbooks(1).Worksheets("Sheet1").Range("AA1").Value)
If Not r Is Nothing Then
Workbooks(2).Worksheets("Sheet2").Select
r.Select
Else
MsgBox "見つかりませんでした。", vbExclamation
End If

End Sub

素人目にも雑なマクロとなっています。

お礼日時:2022/02/08 18:02

No.1さんへのお礼に、「ヒントでも」と書いてあったので、「Sheet1のA1セルの値でSheet2を検索し、ヒットしたセル位置へ移動」するマクロを書いてみました(エラー処理とかは省いてますが・・・)。


参考になれば幸いなのですが、この続きを書くことがイメージできますか?
もし、やってみようと思うのであれば、応援させていただきます。
たぶん、先の回答者様たちも同じ気持ちだと思いますので、頑張ってみて下さい。

ちなみに、すでに何らかのマクロが組み込まれたブックを運用中のようなので、そのマクロを書いた人に相談した方が早いかもしれません。簡単に機能追加できるような気がします。

以下、サンプルコードです。

Sub sample()
Dim findStr As String
Dim Tg As Range
findStr = Worksheets("Sheet1").Range("A1").Value
Set Tg = Worksheets("Sheet2").Cells.Find(findStr, LookIn:=xlValues)
Application.Goto Tg

End Sub
「エクセル作業の効率化マクロを教えて下さい」の回答画像5
    • good
    • 2
この回答へのお礼

ヒント有難うございます。
早速サンプルコードを元に二つのブックを開いて作業しますので
findStr = Workbooks(1).Worksheets("実際のシート名1").-----------
Set Tg = Workbooks(2).Worksheets("実際のシート名2").----------- と
変更させて頂き実行しましたら、ブック1の指定セルの値でブック2の
同値セルへ移動することが出きました。感激しました。
今はブック1で指定セルとなっていますが、参照元セルをクリックした任意のセルとする記述、エラー処理の記述が分かりません。
ヒントを頂いているのに、厚かましいお願いですが、もう少し追加ヒントを
ご教授願えませんか。
宜しくお願いいたします。

お礼日時:2022/02/07 00:30

ええと。


マクロを扱えないのに何を言ってるんですか?
処理を行うアルゴリズムの構築からコードの作成まで全部代わりにやれという事なんでしょうか。

・・・

自分で作る気無いんでしょ?
だったら諦めて、
従来通りのやり方で処理を行うか、
一覧表を印刷しておき、それを見ながら手作業で処理を行うとか、
フィルター機能を使って絞り込むとか、
別にブックを作成し、A1セルとB1セルに入力したブックをそれぞれ参照するシートを作成するとか、
別の方法を考えるべきではないでしょうか。

得意でもないマクロに頼る必要なんてないと思いますけど、どうお考えなのでしょうか。
    • good
    • 1

おいくつなのかわかりませんが、マクロ作成は慎重にした方が良いですよ。



苦労してつくっても感謝されるのは最初だけです。
ExcelVBAはセル位置によって操作されますので、台帳の様式がかわったり条件がかわれば変更しなければなりません。

マクロのメンテナンスは部局ではなく人についてまわります。
「あの人がつくったのだから修正してくれて当然」、この発想がついてまわるんですよ。
退職してからマクロのことで呼び出されたことさえあります。

そして条件がかわったりしてそのマクロのメンテができなくなると
「こんな使えないシステムを作りやがって」とむしろ悪口をいわれます。

ですからうかつに手を出さない方が良いように思いますよ。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
ご指摘の内容は理解できます。
当方エクセル操作には慣れていましたが、マクロ作成は知識がありません。
今運用中のBOOK AA、BOOK BBのマクロ内容は変更せず、作業時開くシートA-1の商品名セルの値でシートB-1のセルを検索する機能を、個人的に使用する別シートで操作できたら良いなと考えていました。
年齢的に視力も衰えてきているので、目視での両シート間の確認より、別シートに組み込むマクロで検索できればとの考えでした。
作業時検索で楽したいのではなく、間違いのない検索をしたい考えからでした。

お礼日時:2022/02/06 14:02

内容的に実際のシステムでの検証が必要かも。


そこは会社の承諾も必要ですから(例えばコードがサーバーのデータを改竄出来るとして、それを見抜けますか?)、契約に基づく業務委託が必要と思いますよ。

少なくとも上司はこの質問(作業)を承諾してますか?
もししてなければ勝手な行動として処分もあり得ますね。
    • good
    • 0
この回答へのお礼

回答有難うございます。
ご指摘の事、仰られる通りです。
現在業務で取り扱うブック-A、ブック-Bのマクロはそのままで、準備するつもりだった検索シートによる作業効率化の考えは上司と相談済みです。
只、私がエクセル操作には慣れていますが、マクロ作成については知識がなく
まったくの素人ですので、本サイトで質問した次第です。

お礼日時:2022/02/06 14:02

ごめんなさい。


ここは「代わりに作ってください」と作業依頼をする場所ではありません。
もしも作業依頼をご希望であれば、有料サイトで作成委託をすることを薦めます。

ここは自力で問題を解決するためのアドバイスを受ける場所です。
例えば、
 「指定したフォルダに保存するマクロはどうやれば作れますか」 
のような質問になります。
    • good
    • 1
この回答へのお礼

回答有難うございます。
ご指摘の通りですが、当方エクセルマクロ作成については全くの素人ですので
正直にこのようなマクロを作れませんかとの投稿になりました。
改めてお伺いしますが、質問内容にあるようなマクロ付き検索シートで、作業シート1の値で作業シート2でのセル位置へ移動させるマクロはどうやれば作れますでしょうか。ヒントでもご教授下さい。

お礼日時:2022/02/06 14:02

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