• ベストアンサー

別のExcelファイルへ一つのシート(VBEditor付き)だけ移動したいのですが・・・

Excelで別のファイルへ一つのシートを移動するのはできたのですが、そのシートでVisual Basic Editorを作成した状態で移動させると別のExcelファイルでそのシートのVisual Basic Editorがコピーされていませんでした。 どのようにすればVisual Basic Editorの中身ごとシートを移動できるのでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >最終的には10人がそれぞれ作成した画面を一つのExcelファイルで全ての画面が見られるように統一して完成させることが目的です。 これは、私は、経験ありません。ただ、一応は、どういうものかは知っているつもりです。ご質問のレベルとおやりなっているレベルが、あまりにも差がありすぎるように思います。チームでのExcelのVBAの作成は、お互いのルールとコンセンサスを作っておかないと出来ません。 それと、誰か一人スキルの上の人がいれば、同じものを作らないで済みます。Excelでは、特に、シートモジュール以外のものは、ほとんど、共有化させたプログラムにします。つまり、表面的には問題は見えませんが、VBAは、特に、同じこと同じ繰り返しのコードをひじょうに嫌うものだと考えてよいと思います。 VBのみの部分もありますが、以下は、チームで作る時のとても参考になります。 http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9807/business/ 失敗しないビジネス開発のために >シートとフォームは全く別物なのでしょうか? VBAの扱いとしては、シートモジュールもフォームモジュールも同じブックの中ですが、ユーザーフォームは、もう1つのブックとしてみても良いぐらい、独立しているように感じています。(ただし、これは、私の感覚的なものです。シートというのは、ひじょうに複合的な部分を持っていますが、ユーザーフォームは機能重視だからです。)

DINO-PIE
質問者

お礼

まだVBとVBAの意味も違いもわからないくらいの初心者です。年末までにはしっかり勉強して回答者様のコメントを理解できるようにします。ありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >この書き込んだユーザーフォームを別ファイルにシートごと送りたいのですが…。 最初から正確な目的を書かれたほうが良かったと思います。私は、同様の質問でいろんなバリエーションにであったことがありますので、何か、他に問題が残っているような気がしてしまいます。 もしかしたら、アドインを用いないで、多数のブックに同じものを置きたいというわけではありませんか?もし、そういう目的ですと、まったく違う内容になります。 当面の回答だけしておきます。 そこは、ユーザーフォーム・モジュールといいますが、プロジェクト・エクスプローラで、 該当するモジュールを選択し、右クリック ファイルのエクスポートで、適当な名前を付けます。 新しいブックで、プロジェクト・エクスプローラの任意の場所で、右クリック-ファイルのインポートで先ほど保存してファイル名を選択すれば、ユーザーフォーム全体が入ります。 なお、シートモジュールは、ブック全体の中では、ちょうど、ユーザーフォーム・モジュールと同じように、単独オブジェクトの下に位置したものですから、シートモジュールは、基本的に、スコープ(有効範囲)は、そのモジュールのみで、そのシートのみに機能したものですし、また、そうでないとエラーの発生の元になることがあります。これは、ユーザーフォーム・モジュールでも同様です。

DINO-PIE
質問者

補足

補足不足で申し訳ありません。10人くらいで分担して各パソコンでVB-Editorを使いボタンやラジオボタンのついた簡単な画面を作成します。 最終的には10人がそれぞれ作成した画面を一つのExcelファイルで全ての画面が見られるように統一して完成させることが目的です。 シートとフォームは全く別物なのでしょうか?

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

VBEditorで作成したVBAのプログラムは 1.シートモジュール 2.ブックモジュール (ブック=一エクセルファイル) 3.標準モジュール 4.クラスモジュール に分類される。このうち、シートを別のブックにコピーや移動を行った際に、一緒に持っていかれるモジュールは1番のシートモジュールのみだ。 VBEditorで、「ThisWorkbook」や標準モジュール、クラスモジュールに書かれてある関数は移動できない。シートモジュールにしてあげよう。

DINO-PIE
質問者

お礼

ありがとうございました。

DINO-PIE
質問者

補足

シートモジュールにするとはどういうことなのでしょうか? VB/Editorで該当するシートを右クリックして挿入からユーザーフォームを選択してテキストを書き込んだりボタンを作成したりするフォームがあります。ここの選択肢は他にクラスモジュール、標準モジュールの3つだけでした。この書き込んだユーザーフォームを別ファイルにシートごと送りたいのですが…。

関連するQ&A

  • エクセルシートを別のエクセルファイルに移動する方法

    エクセルファイルの複数のシートの中から1シートだけ他のファイルにしたい(移したい)のですが、どうやったらいいのでしょうか。同じファイル内での移動やコピーはやったことがあるのですが、他のファイルへコピーとか移動、またはそのシートだけ新たにファイル化するということをやったことがないので、どなたか詳しい方、教えてください。お願いいたします。

  • エクセルシートを別のエクセルファイルへコピー

    同じエクセルファイルのAシートはAのパソコンで、 BシートはBのパソコンで作成しました。 ABのパソコンはネットでもLANでもつながっておらず、 全く別のパソコン単体でしか使えません。 それぞれのパソコンで作成したABのシートを 片方のファイルの片方のシートと置き換えたいと思います。 (例えば、Aパソコンでエクセルファイルを開き、 Bパソコンで作成したBシートだけを、 AパソコンのエクセルファイルのBシートと置き換えるという意味です) 同じパソコン上の、同じファイル上で作ったファイルのコピーや シートのコピーはわかりますが 違うパソコンでそれぞれABのシートを作成して、 出来上がったシートを合体させるなんてこと、できますか。

  • Excelのシートで

    いつもお世話になります。 エクセルのファイルで任意のシートだけ隠しシートにすることは可能なのでしょうか? 可能であれば、解除の仕方を教えてください。 Visual Basic Editorを開くと、Microsoft Excel Objectsにシート名がいくつかあるのですが、エクセル本体のシートは一つしかありません。 どうやら開いているシートは、他からデータを読取っているみたいなのですが、別のエクセルファイルを開いていないので、恐らく当該ファイルの何処かから読取っていると思います。 宜しくお願いします。

  • エクセルシートを別のエクセルに移動できない・・・

    お世話になります どうか宜しくお願い致します。 題名の通りなのですが、エクセルシートを別のエクセルに移動できなく困っております ネットで検索しまして、コピーを取る方のエクセルデータと、それを取り込みたい方のエクセルを 立ち上げて コピーまではできるのですが、 移動先のブックという所で取り込み先のエクセルデータの名前のが出てこず、そこでつまずいてしまいます。 どうしたら良いのでしょうか どうかお教えください 宜しくお願い致します。

  • excel で別ファイルの特定のsheetの移動

    excel 2007で別のfileのsheetを移動出来ればとお尋ねします file A に sheet a, b, c, d file B に sheet a', b' c', d' があります (A,B共夫々同じ形の表です) b と b' を入れ替える又は b を削除して其処へ b' を移動で? 入れたいのですが、判りやすく教えて頂ければ有り難いです

  • EXCELでシートを別名ファイルにコピー(移動)すると、日付がずれてしまいます。

    EXCELで以下のようなデータがあるとします。 3月1日 500 3月2日 400  … 3月31日 300 このシートを新規のファイルや別名ファイルに コピー(移動)すると、 3月2日 500 3月3日 400  … 4月1日 300 というように、 日付が1日ずつずれてしまいます。 同じファイル内の別シートにコピー(移動) する分には、日付のずれは発生しないのですが。。。。 日付のずれがなく、別ファイルにコピー することは可能でしょうか?

  • エクセルのシートのコピー

    何時もお世話になります。 エクセルのバージョンは2002です。 作成済みのエクセルファイルで、シートをコピーしようとコピー元のシートにマウスをあて同時にコントロールキーを押しながら異動先に移そうとした時、○に斜め棒のようなロゴマークが出て移動できません。 以前は、この手順で出来ました、またエクセルで作成した別のファイルは今まで通りの手順で出来ます。なにかの設定を換えたのでしょうか ご教授願います。

  • エクセル 別ファイルから シートを リンクを張らずに コピーしたい

    エクセル2003 1~4  はファイルの状態の説明です。 やりかたを質問したい部分は 5です。  1、ファイル(ブック)A.xls → 計算式が大量に入った数シートからなるファイル があるとする。 2、A.xls を そのままコピーし コピーされたファイルは B.xls に リネーム。 3、A.xls は 計算式等は変更しないが、データを変更し通常業務で使用。 4、A.xls の新バージョンを作るために B.xls を使って計算式等を編集。 (複数あるシートのうち一部シート(シート名 「あいうえ」 とする)のみの変更に加え さらに新シート「さしすせ」を作成) 5、A.xls のシート名 「あいうえ」をB.xlsで作った シート名 「あいうえ」と置き換え、 さらに新シート「さしすせ」もB.xlsからコピーして追加する。   普通にシート名 「あいうえ」や 新シート「さしすせ」を選択し  コピーを行うと B.xls からリンクを張った状態でコピーされて  しまう。たとえば シート「あいうえ」セルA1の中身を見ると  =[B.xls]あいうえ!A1*2+1 といったように [B.xls]が付いて  コピーされる。  これを回避して、単にそのまま丸ごと(A.xlsの中だけで編集したかのように) シートをコピーするにはどうしたら よいのでしょうか?  長くなってすいません。  よろしくおねがいいたします。  

  • EXCEL 別のファイルからシート抽出をしたい

    お世話になります。 業務上、毎日、EXCELファイルが作成されます。 (1.xls、2.xls、3.xls・・・というように、毎日段々と増えていきます) それとは別のEXCELファイルを一つ作成して、次のことをしたいと思っています。 ・1.xls、2.xls、3.xls・・・のように、複数あるファイルの中から、一つのファイル、シートを指定し、  シートの内容をそのまま抽出したい。(なお、抽出したいシートの名前は毎回違います) よろしくお願いします。

  • VBAで別エクセルファイルから指定エクセルファイルにシートをコピー

    Office2003のエクセルでVBAを勉強しております。 そこで、VBAで別エクセルファイルからあるシートを指定エクセルファイルへ丸まるコピーしたい場合にはどのようにすればよいのでしょうか?

専門家に質問してみよう