- ベストアンサー
VBA EXCELファイル選択⇒指定セルコピー
マクロでこんなことできませんか? 完全でなくても構いませんので、できる範囲で教えてください。 宜しくお願いします。 マクロを起動すると、ファイルを選択するウインドウが開きます。ここで、あるExcelファイル(仮にC:\MYDOCUMENT\EXCEL\AAAA.xls)を選択すると、このファイルのセルB2,B3,B4,B5が、マクロを実行しているファイルの同じセルにコピーされ、更にセルB1に、AAAA.xlsの.xlsを抜いた数値のAAAAが入力されます。 AAAA.xlsは一度オープンになってもかまいませんが、自動的に閉じればベターです。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- エクセルのVBAでファイルの状態を調べるコマンド
エクセルのVBAでファイルのコピーをしたいのですが、コピー元がOPEN状態だとコピーできません。 FileCopy "C:\A.XLS", "C:\B.XLS" そこで、上記のコマンドを実行する前に、コピー元がOPEN状態かどうかを判断させて、OPEN状態だと実行を5秒待つようなマクロを記述したいのですが、可能でしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセルVBA
こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。
- ベストアンサー
- Visual Basic
- VBA マクロ付きExcelファイルを無効で開く
タイトルの通り、マクロを含むExcelファイルを、マクロ無効でオープンしたいのですが、そういうことは出来るでしょうか? 新規ファイル作成.xlsというマクロがあって、temp.xlsというマクロを含んだファイルをnew.xlsというファイル名でコピーし、それをオープンしてデータを追加して終了。 次にそのnew.xlsをオープンした時にはtemp.xlsに含まれるマクロが実行される・・・ というようなことをしたいと思っています。 もしくは新規ファイル作成.xlsのマクロから、直接new.xlsのファイルにコーディングが可能であれば、それでも良いのですが・・・ データベースから表を作成し、作成後の変更データを再度データベースへ戻す、ということがやりたいのですが、上記の方法しか思いつきません。 もし上記の方法が出来ない場合は、別の方法がありますでしょうか? どなたかアドバイス、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAで、excelファイルのマクロを実行したら、特定のフォルダのファ
VBAで、excelファイルのマクロを実行したら、特定のフォルダのファイルの特定セルを確認し、その結果を反映する、というマクロを組みたいと思っています。 具体的には下記のマクロを組みたいと思っています。 ------------------------------------------------------ (1)マクロを組むファイル【worksheet】にてマクロを実行する (2)特定のフォルダのファイルのA1、A2、A3、A4の全てに”OK”という文字が入っているかを確認 ・C:\excel\1番\kakunin_1.xls にあるkakunin.xlsの、A1セルに”OK”という文字が入っていたら次はA2、A3、A4の順序で 確認する。 ・このとき、A1にOKと入っていて、A2には入っていなかった場合は、A2という文字を、【worksheet】のB1セルに結果を表示する ようにする。 ・特定のフォルダの構成は下記 C:\excel\1番\kakunin_1.xls |--\2番\kakunin_2.xls |--\3番\kakunin_3.xls ・上記の処理を、1番フォルダの【kakunin_1.xls】で実行し、【worksheet】のB1セルに結果を表示。 2番フォルダの【kakunin_2.xls】で実行し、【worksheet】のB2セルに結果を表示。 3番フォルダの【kakunin_3.xls】で実行し、【worksheet】のB3セルに結果を表示。 ------------------------------------------------------ VBAどころかプログラミング自体が初めてなので、例えば引数が何かも一々考えて1文ずつ読み込まなければいけない状態です。。 どなたかこの無知な自分に力を貸して頂けないでしょうか?
- 締切済み
- Visual Basic
- excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか?
excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか? 1.最初の処理 (1)A.xlsのファイルを開く (2)マクロ:2010.xlsのファイルを開く (3)マクロ:チェックのシートをA.xlsの明細のシートの前に追加 (4)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更 (5)マクロ:2010.xlsのファイルをディスクトップ上から削除 2.後から追加する処理 (6)B.xlsのファイルを開く (B.xlsは、A.xlsとは異なるフォルダを作成し、A.xlsの特定のセルの中身の名称でファイル名保存されます。名前が異なるだけでマクロの中身はA.xlsと同じ) (7)マクロ:2010.xlsのファイルを開く (8)マクロ:チェックのシートをB.xlsの明細のシートの前に追加 (9)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更 (10)マクロ:2010.xlsのファイルをディスクトップ上から削除 上記を対応する為に下記の様なマクロ((6)(7)の部分を抜粋)を設定しています。 '2010.xlsのファイルを開く(2010.xlsのファイルは適宜、ディスクトップにコピーされます) Workbooks.Open FileName:="C:\Documents and Settings\ID\デスクトップ\2010.xls" 'チェックのシートを現在のブックの明細の前にコピーする。 Windows("2010.xls").Activate Sheets("チェック").Copy before:=Workbooks(1).Sheets("明細") 単独でA.xlsやB.xlsのファイルが開かれている場合には、 上記の対応で問題ないのですが、A.xls、B.xls以外のexcelファイルが開かれていると、 実行時エラーが出てしまいます。 Workbooks(1)の部分で最初に開いたexcelのファイル名称を指定しているのが 影響しているのはわかるのですが、ここの処理をなんとかしたいというおもいです。 つまり、複数のexcelファイルが開かれていて、A.xlsやB.xlsのファイルを後から開いても エラーがでない様にするには、どの様な処理にしたらよいのか教えて頂きたく。 マクロを実行したexcelのファイル名を覚えておいて、その名前が(1)に置き換わる 様な処理が望まれる処理です。
- ベストアンサー
- オフィス系ソフト
- エクセルVBA
選択しているセルが1セルの場合は、その行を1行ごと、 例えばB10にセルがあれば、10行めを行コピーして11行めに、行挿入、 選択しているセル範囲が3セルの場合は、そのセルのある3行をコピーして 例えばB10:B13を範囲選択していたら、10~13行めを行コピーして、 14行めに3行まとめて挿入するようなマクロ作るには、 どのように記述したらいいでしょうか? コピー元には、計算式を含むセルがあります。 貼り付け先には、その計算式もコピペされているとベストなんですが・・・
- ベストアンサー
- Excel(エクセル)
- ExcelのVBAで、他のExcelファイルのセルのデータを取得
ExcelのVBAで、他のExcelファイルのセルのデータをファイルを実際に開かずに取得する方法はありますか? Workboks.openを使わずに、具体的にどうすればいいのでしょう? (例) AAA.xls のセル"C5"に BBB.xls のセル"B3"のデータを入力したい場合。 (AAA.xlsにマクロを起動するボタンがある) ただし、BBB.xlsの最初の3行は空白です。
- 締切済み
- オフィス系ソフト
- 【マクロ】指定したファイルを開いてマクロを実行
マクロ初心者です。よろしくお願いします。 <質問> コマンドボタンをクリックしたら、任意のエクセルファイルを指定して開き、その開いたファイル(白紙状態のファイル)にマクロを実行させる方法を探してます。 <作成マクロ> Private Sub CommandButton1_Click() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName End If Workbooks(Dir(OpenFileName)).Activate ActiveCell.FormulaR1C1 = "テスト" Range("A1").Select Selection.Copy Range("B1").Select ActiveSheet.Paste End Sub <マクロ説明> --コマンドボタンをクリックして指定したエクセルファイルを開く-- Private Sub CommandButton1_Click() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName End If Workbooks(Dir(OpenFileName)).Activate --開いたエクセルファイル(白紙状態)のセルA1に「テスト」を入力した後、コピーしセルB2に貼り付ける-- ActiveCell.FormulaR1C1 = "テスト" Range("A1").Select Selection.Copy Range("B1").Select ActiveSheet.Paste End Sub コマンドボタンをクリック ↓ 任意のエクセルファイルを指定して開く ↓ 開いたファイル(白紙状態のファイル)のセルA1に「テスト」と書き込み セルA1の「テスト」をコピーしセルB1に貼り付ける このマクロを実行させるにはどこを改善すれば良いでしょうか? ご助言いただけると助かります。 よろしくお願い致します。
- 締切済み
- Visual Basic
- 【マクロ】指定したファイルを開いてマクロを実行
マクロ初心者です。よろしくお願いします。 <質問> コマンドボタンをクリックしたら、任意のエクセルファイルを指定して開き、その開いたファイル(白紙状態のファイル)にマクロを実行させる方法を探してます。 <作成マクロ> Private Sub CommandButton1_Click() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName End If Workbooks(Dir(OpenFileName)).Activate ActiveCell.FormulaR1C1 = "テスト" Range("A1").Select Selection.Copy Range("B1").Select ActiveSheet.Paste End Sub <マクロ説明> --コマンドボタンをクリックして指定したエクセルファイルを開く-- Private Sub CommandButton1_Click() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName End If Workbooks(Dir(OpenFileName)).Activate --開いたエクセルファイル(白紙状態)のセルA1に「テスト」を入力した後、コピーしセルB2に貼り付ける-- ActiveCell.FormulaR1C1 = "テスト" Range("A1").Select Selection.Copy Range("B1").Select ActiveSheet.Paste End Sub コマンドボタンをクリック ↓ 任意のエクセルファイルを指定して開く ↓ 開いたファイル(白紙状態のファイル)のセルA1に「テスト」と書き込み セルA1の「テスト」をコピーしセルB1に貼り付ける このマクロを実行させるにはどこを改善すれば良いでしょうか? ご助言いただけると助かります。 よろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- Excel VBAでのセルの範囲指定
Excel2000 Win2000です。 あるbook「A.xls」にある表「a」を「B.xls」にコピペ&行列反転するマクロを作っています。 A.xlsの表「a」のサイズが作成の都度変わるため、 B.xlsからサイズの取得をする為、 Workbooks.Open Filename:="A.XLS" I1 = 1 ' 行数の取得 DO WHILE CELLS(I1,1).VALUE <> "" I1 = I1 + 1 LOOP I2 = 1 '列数の取得 DO WHILE CELLS(1,I2).VALUE <> "" I2 = I2 + 1 LOOP として、行と列の数を取得しています。 で、ここまで来てセルの範囲をどうやって指定していいのか分からなくなりました。 例えば、I2の値をExcelの列のアルファベット表記に変える等、 なにかいい方法はありませんか??
- ベストアンサー
- Visual Basic
お礼
完璧にできました。感謝しています。 プログラムの内容はちんぷんかんぷんですが、一つ一つこれから勉強します。