ここから本文です

エクセルのVBAについてお願いです。 現在エクセルでVLOOUPを使用してデータの管理...

asi********さん

2017/9/1618:01:29

エクセルのVBAについてお願いです。
現在エクセルでVLOOUPを使用してデータの管理を複数人で管理しておりますが、関数が入っているセルをDeleteしてしまい、関数が消えてしまう事が多々起きて

おります。
この度VBAを使用すれば、そのようなことが起きないのかと思い検索しておりましたが、自身のレベルでは作成できそうにありません。是非導入したいので、お力を貸していただきたいと思います。
管理している物は以下のとおりです。

○sheet1のB6~C32まで番号・C6~C32まで名前を入れる欄があります。
○名前の横F~Tまで個々で必要な場所に○が入る欄があります。
○sheet2に同じ表があり、個々の名前○の配置が記録してある表があります。(今後名前が増えますので、空欄来たらloop?したいです。
○sheet1に名前を記入したら横の○をsheet2から参照するものを作成してほしいです。
※Vlookupを使用していた時は名前が一致したら同じセルの○を参照するようにF~Tそれぞれのセルに関数を入れて使用しておりました。VBAがどこまでできるものなのかわかりませんが、この説明で作成は出来ますでしょうか?

知識がないならやめろとお思いでしょうが、効率化のために早急に導入したいです。よろしくお願いします。

補足回答ありがとうございます。
シートの保護も検討しましたが、○を消す原因は時々○を消す必要がある場合があるからなんです。その○を消すと式も消えるということです。
現在使用しているものは(1番上の名前横のもの)(C5)=VLOOKUP(メイン!B5,リスト!$C$4:$Q$487,2,FALSE)
名前の横C~Q(質問時からセル削除しましてF~Tは変更してます)に上記の関数入っていまして参照列2~16でそれぞれ参照している状態です。

セルにマクロでVLOOKUPの方が理解出来そうです。
全体の物は変更時対応できそうにありませんね・・・
よろしくお願いします。

閲覧数:
88
回答数:
3
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2017/9/1619:56:38

>シートの保護も検討しました
検討の度合いが浅いのでは?

>○を消す必要がある
のなら、
1)
式が入っているセル(C5)に保護をかける。
その他は、保護なし。

2)
○が必要かどうかをコントロールするセルを用意する。(仮にA5)
A5が空白なら、〇の計算が必要。
空白以外なら、計算は不要。
と取り決めしておく。

3)
C5の式を↓に変更

=IF(A5="",VLOOKUP(メイン!B5,リスト!$C$4:$Q$487,2,FALSE),"")

○を消す必要がある時には、式を消すのではなく、A列になにか、値を入力する。

  • 質問者

    asi********さん

    2017/9/1620:29:29

    回答ありがとうございます。
    それも考えたんですけど、⚪︎の変更があるのがランダムな為、A列に横15個分の有る無しを判定するものを入れるとなると、手間が増えるだけかなと思いまして…
    リストを参照する!消しても式は消えない!みたいなのができればと思いまして…

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/9/18 10:26:18

ありがとうございました。
この方法でやってみようと思います。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

tob********さん

2017/9/1711:08:11

この質問に回答するには圧倒的にsheet2の情報が足りていません。
sheet2がどういう状況なのか、概要ではなく「本当に全て」の内容を記した全体像があった方が真に役立つ回答がつきやすいと思います。
つまり、そのシートのことを本当に何も知らない我々が、ゼロからそのシートを再現できるくらいの説明です。

私も、仰っているような状況でマクロを使うのは疑問です。問題に対して過度に高度な技術を引っ張り出そうとしているような気がします。
sheet2に関数で入っている「○」を、状況に応じて手修正しないといけない場合、普通は、以下のどれかで解決すると思います。


手修正専用のsheet3を作り、そこに「×」を書き込むことで、sheet2の同じ位置にある「○」が消えるように関数を修正する。


sheet2は中間状態として、最終状態を表示するsheet3を作る。sheet3はsheet2を丸ごと参照している。(すなわち、sheet3のA1には「=sheet2!A1」、B1には「=sheet2!B1」、…と入っている状況)
手修正はsheet3に対して行い、決してsheet2を触らない。保護をかけるのもあり。
こうすると、手修正後、sheet3の数式は容易に回復可能。


sheet2のVLOOKUPの数式を、絶対参照や相対参照を駆使して、「オートフィルだけですべてのセルに正しい数式が入る」状態にしておく。
こうすると、手修正後、元の数式を回復するのは近くのセルからオートフィルしてくるだけでよい。

プロフィール画像

カテゴリマスター

aka********さん

2017/9/1618:44:28

マクロを 他人の力を 借りて 作成する事は 問題ないのですが
理解して 私用しないと 項目の増減が あったりすると 全く使い物にならなくなる恐れがあります。
マクロは 全く表面にでず、融通が 利きません。

今回 関数が入っているセルをDelete この解決のためだけなら シートの保護を
お勧めします。

それでも という事なら 二通りあります。
方法①
今まで 入れていたセルに マクロで Vlookup関数を 入れる。
消しても マクロで Vlookup関数を 入れ直すという マクロ
この場合 今後自分たちでも 修正が 聞くと思います。

方法② VlookuP関数は 使わず マクロのみで 行う方法が
あります。

どれが 良いでしょうか?

マクロを 組む場合は 現在の VlookUP関数を書いてください。
方法①でも②でも それが 必要です。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる