• ベストアンサー

《エクセル》マクロとセルのリンク貼り付け、どちらがいいでしょうか。

色々な素材に関する計算過程・結果を記入したエクセルファイルが、20程度あります。 (ファイル内のレイアウトは、どれもほぼ同じです) その計算結果は、今後も少しずつ変わる予定です。 それらのファイル内の、「結果」に当たるセルのみ、別の新規ファイルに一覧で表示させたいです。 データが今後も動くということで、新ファイルの仕様をセルのリンク貼り付けにするか、または絶対値の貼り付けをマクロで記録していくか、どちらを使うかで迷っています。 簡単なコメントでも結構です。 双方の長所・短所があると思いますが、ご意見頂けましたら幸いです。 (わかりにくい内容かもしれませんので、もし「?」でしたら補足要求お願いします)

質問者が選んだベストアンサー

  • ベストアンサー
noname#33973
noname#33973
回答No.1

一部のセルをそのまま参照するだけなら、処理速度やファイルサイズに差が出るとは思えないので、リンク貼り付けの方が簡便かと思います。 以下は一般論です。 ・マクロ(VBA) ○複雑な作業ができる。 ○処理速度が速い。 ○ファイルサイズが小くて済む。 ×アクセシビリティが悪い (メーラーやExcelがはじく。その設定から説明が必要な場合も) ×セキュリティ的に不安 (マクロウィルスを完全に防ぐ方法⇒ウィルスだろうがなかろうがマクロ付きファイルは開かない設定にしておく) ×共同作業・引継ぎが困難になる場合も。 (相手のスキル次第では業務が止まる) ・関数 ○普通にやりとりできる。 ○赤の他人に対してもある程度のスキルは期待できる。 ○セキュリティ的に安心。 ×単純な作業しかできない(意外と複雑なこともできるけど、それはそれでスキルが必要) ×処理速度が遅くなる(無駄な計算を繰り返す) ×ファイルサイズがバカでかくなる(似たような記述でセルを埋め尽くす)

bari_saku
質問者

お礼

こんにちは。 意図したことが伝わったようで、ホッとしております。 そうなのですよね、マクロは便利なのですが、色々思わぬ場面で制約が出ますね。 ファイルサイズが心配ですが、該当セルの数は150~200くらいなので、リンク貼り付けでも何とかなるかもしれません。 ご意見、感謝いたします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.2

リンク貼り付けにすると、データが保存されているファイルで行・列の追加・削除が行われると、うまくデーターが取れなくなります。 それが無いなら、リンクの更新で最新のデータを取得することができるのでお手軽です。(ファイルを開くたびに更新の確認が出るので少々ウザイ?) マクロを絶対アドレスで書くと、リンクと同じで行・列の追加・削除をされるとデータが取れなくなるので、何かを目印(列の見出しなど)にしてデータの位置を探すか、ファイル名と結果が入っているセルのアドレスの一覧表を作成し、それを元にデータを取り込むような仕組みにしたほうがいいと思います。

bari_saku
質問者

お礼

>データが保存されているファイルで行・列の… こちらを、私も心配しています。時と場合によっては変わることもあり得ますので。 ご意見、非常に参考になりました。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのマクロについて教えて下さい

    エクセルで、データ(書類)のコピー貼り付けのマクロを組みました。 ツール→マクロで、新しいマクロの記録から、実際にコピーをして貼り付けをし、記録の終了をしました。 次に他のセルの場所でもそのマクロを実行して、何度も場所を変えてコピー貼り付けを実行したいのですが、操作用のボタンを作成して貼り付け、ボタンを押すと、同じ場所でコピー貼り付けを繰り返します。 たしか絶対参照とか相対参照とかあったような気がするのですが…。 どうすれば、他の場所でもボタンを押すだけでコピー貼り付けのマクロを実行できるようになりますか? よろしくお願いします。

  • エクセルの「新しいマクロの記録」で相対的にセルを指定するには?

    基本的にマクロの知識はなく、「新しいマクロの記録」で記録したものを使うことしかできないレベルです。 現在カーソルがあるところをA1のセルとします。 マクロの記録を開始して、B1を指定し、計算式等を 入力します。で、マクロの記録を終了します。 希望としては、現在A2にカーソルがある状態で マクロを実行すると、B2に同様の計算式が入力されて 欲しいのですが、そのままやってしまうと、再度B1に データが入力されてしまいます。 どこかに相対的にセルを指定できるようなオプションが あったと記憶しているのですが、探し出せません。 ご存じの方教えてください。

  • Excelでのコピー貼り付けを繰り返すマクロ

    B4セルをコピーしてB5に貼り付け。 B6セルをコピーしてB7に貼り付けという感じで、コピーと貼り付けを連続して行いたいです。マクロの記録でやっていけると思い色々やっていますが、どうもうまくできません。 皆さん教えて頂けませんか。

  • エクセル テキスファイル 一つのセルに改行されて入る マクロ

    エクセル2000を使用しています。 シートにボタンを配置して、希望するテキストファイルを開き A列に並べようと思っています。 書籍・インターネットで調べているのですが、テキストファイルが A1セルにすべて入ってしまいます。 別ブックを、読み込みを行うとうまくいくのですが、 現在作業中のシートにはうまく入れることができません。 現状は、別ブックのA列をコピーして、貼り付けを行っています。 別ブックを作成せずに、A列にテキストファイルを入れるには方法は ありますか? マクロは、自動記録などをぺたぺた、くっつける程度です。 お時間があれば教えてください。 よろしくお願いします。

  • エクセルのマクロ自動記録でセル指定がうまくいかない

    エクセルでマクロを記録させて作業を簡略化しようとおもい、現在のセルから相対的にセルを選択してその内容を削除させようとしました。しかし、結果は絶対セルが 常に消えてしまいます。どうすれば相対セルを選択させられるのでしょう 教えてください。

  • Excel VBAのマクロの記録について

    Excelマクロの初心者です。 マクロの記録のやり方の質問です。 今あるフォルダの中にファイルA、Bがある状態でファイルAのマクロの記録で、ファイルBのコピーを同じフォルダーに作る操作を記録しようとしましたが、うまく記録できません。 何かやり方が間違っているのでしょうか、ファイルAの中でのセルの色塗り等のマクロの記録はうまくできます。 マクロの記録ができない操作があるのでしょうか、あるとすれば記録できないものはどのような操作でしょうか?教えて下さい。

  • 【マクロ】セル内のテキストを隣のセルにハイパーリンクしたい

    マクロ初心者です。過去の質問を検索したのですが、同様なものが見つかりませんでしたので、新たに質問させていただきます。 エクセルで、A1セルに入力されたテキスト(ファイル名)を、隣のB1セルのテキストにハイパーリンクしようと思います。 ※セルは全部で1000行程度 ※A列セルのテキスト内容は全て同じ文字数で、テキストの途中で4桁のみ内容が変わる ※実際の例をあげると次のような感じです。 A1→あいうえお/at0****.xdw B1→かきくけこ(※文字数はバラバラ) A2→あいうえお/at0****.xdw B2→さしすせそたちつてと 試しにマクロの自動記録を使ってみたのですが、マクロにテキスト内容が記録されてしまい、他のセルで実行するとテキスト内容が上書きされてしまいます(当たり前ですが・・・)。 初心者なりに学習しながら答えを見つけなければと思うのですが、毎回急を要する時にしかマクロを使わないため、上達しません。頼ってばかりで申し訳ないのですが、ご教授いただけると助かります。よろしくお願いいたします。

  • エクセル2000でセルの表示とリンクのやり方を教えてください

    下記のやり方をご存知の方いましたらお答えして頂けませんか?よろしくお願い致します。 1)あるセルに計算式を入れた時、その値がマイナスになる場合はそのセルを無表示にするやり方 2)計算の結果を違うファイルの指定したセルにリンクさせる方法 3)例えば999が最高値で0に戻るようなメーターがあった場合、888-11の答えが=123になるようなやり方

  • Excel で日付入力したらマクロが動く方法

    Excel 2003 です。(OSはXP) データ用のエクセルファイルからマクロでコピー貼り付けをする日報ファイルを作っています。構成シートが7枚、マクロは12モジュール、ファイルサイズが140MBという巨大なものです。 セルB2に日付を入力したとき、Macro1が動くようにしたいのですが、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$2" Then Exit Sub Else... 以外に何かうまい方法はないでしょうか? セルに値を入力、じゃなくて、何かのコントロールでもかまいません。 マクロで日付を読み込めることが必須条件です。 上述のマクロの活用方法はいろいろ読みましたが、処理に時間がかかって困っております。「全てのセルに変更が加えられたのを検知」するしか方法はありませんか? 一応、この Macro1 を呼び出す部分以外には Application.EnableEvents = False を入れて、Worksheet_Changeが反応しないように止めていますが、遅いような気がします。(計ったわけではないのですが。) この日報ファイル自体が、計算の塊で、1つのセルに数値を入力しただけで、再計算に1秒前後かかることがあります。 そこで、貼り付けのマクロ(Macro2)を動かすときには Application.Calculation = xlManual を入れたりもしているのですが(それでも貼り付けに1分30秒)、常に再計算をOFFにするわけにもいかず・・・。 だから「全てのセルに変更が加えられたのを検知」という命令は、時間短縮のため避けたいのです。 また、マクロの全てにEnableEventsを入れておくのも、見苦しくて。(新たにマクロを追加したらまた忘れずにEnableEventsを書かないといけない構造にしたくありません。) 「全てのセルに変更が加えられたのを検知」ではなく、特定のオブジェクトに日付が入力された・選択されたのをマクロの開始合図とすることはできませんでしょうか? 質問がわかりにくかったらすみません。よろしくお願いします。

  • エクセル 値貼付けをショートカットキーでするには?

    ツールバーの値貼付けボタンを押すことや、右クリックで値貼付けをするのが面倒で、手元でショートカットキーで(Ctrl+ ?)したいのですが、マクロでできるでしょうか?マクロの記録でやっても、ある指定されたセルにしかできず、どんなファイルを開いてもできるやりかたはないでしょうか?

ステンレスの膨張対策
このQ&Aのポイント
  • ステンレス部品の膨張対策について
  • SUS304を使用した部品の熱膨張による変形問題
  • 熱による膨張を抑えるためのSUS304以外の素材
回答を見る

専門家に質問してみよう