• ベストアンサー

エクセルで行列を入れ替えるをフォルダ単位で行いたい

タイトルの通り、行列を入れ替えたいエクセルファイルがあるのですが、数が多くいちいちファイルを開いてやるのはあまり、いいやり方ではないかなと思っています。どなたか、ファイルをひからずに、フォルダに入っているファイルごとに行列入れ替えを適用する方法をご存知の方がいらっしゃいましたらよろしくお願いします。 入れ替えごのファイルは元のファイルを上書きしても大丈夫です。

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

  • ベストアンサー
  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.1

どの方法であれ、データを開かず(メモリに読み込まず)作業することはできません。しかし、アプリのインターフェイス(要は画面)を表示せずにバックグラウンドで処理することは可能です。最も簡単な方法はVisualBasic.Netを使うことだと思います。ExpressEditionがお勧めです。無料ですし、ご希望のことはそれで十達成できます。私は必要に応じてコードをしょっちゅう書きかえるので、実行可能ファイルにせずにデバッグモードで実行しています。 VBScriptingで済ます方法(メモ帳があればできる)もあるのですが、インテリセンスが使えないし、メソッドやプロパティを調べるのも面倒なので、あまりお勧めできません。(記述に結局時間がかかる) ただ、雰囲気を味わうのにはいいので、サンプルコードを書いてみました。以下のコードをコピーして、メモ帳にペーストし、テキスト形式で、拡張子を.vbsにして保存。ダブルクリックして実行してください。 ** Cドライブ直下にtext.xlsという名前のダミーファイルを置いてください。 ** xlApp.visible= FalseのところをTrueにすると可視です。 このコードにはありませんが、ファイルやディレクトリ内情報の取得や操作、エクセルのコントロールなど全く問題なく実現可能です。主要部分をエクセル側にマクロを置いて処理させてもよいと思います。 'Excel起動 Set xlApp = CreateObject("Excel.Application") 'True=可視 False=不可視 デフォルトはFalse xlApp.visible= False '処理開始(本来は全書類が終わるまでループ) 'ファイルを開く Set xlBook =xlApp.Workbooks.Open("C:\test.xls") '行列変換(もどき) Set xlSheet1 =xlBook.WorkSheets(1) Set xlSheet2 =xlBook.WorkSheets(2) xlSheet1.cells(1,1)="test1-1" xlSheet1.cells(1,2)="test1-2" xlSheet2.cells(1,1)=xlSheet1.cells(1,1) xlSheet2.cells(2,1)=xlSheet1.cells(1,2) '確認表示(通常不要) msgbox xlSheet2.cells(2,1).value '保存 xlBook.Save '閉じる xlBook.Close '処理終了 'Excel終了(必ず入れる) xlApp.Quit

関連するQ&A

  • フォルダ名を一括で変更する方法

    ●タイトルの通り、フォルダ名を一括で変更するツールを探しています。 ●コピー先のフォルダ内にある子フォルダの名前が、コピー元のフォルダ名と同一でそのままコピーすると上書きされます。そこでコピー元のフォルダ名を変更したいのです。数が多くて一括変更したいのです。 ●ファイル名を一括変更できるツールは数あるのですが、なかなか見つかりません。過去の質問から、また、Vectorなどで探したのですが、なかなか思い通りに動作するものはありませんでした。ご存知の方がいらっしゃいましたら教えていただけませんか?おねがいします。

  • Excelの行列幅の単位がcmになってしまった。

    Excelの行列幅の単位がcmになってしまった。 特に意識して、設定を変えたわけではないのですが、久しぶりにExcelを開いて表作成をしようとしたら、行列幅の単位がcmになったしまっていました。 今までバージョン2003を使っていてpt入力で使用していたので、使いにくいです。 現在バージョン2007を使っています。 2007では行列幅の設定が可能なのでしょうが、方法がわからず困っています。 また、cmでなんとかと思いながら入力しますが、自動的に数値が切り替わってしまい希望した幅と異なってしまいます。 元の状態に戻したいのですが、方法を教えてください。

  • 圧縮フォルダ内のエクセルファイルについて・・・

    会社のPCでネットワーク内にあるファイルに すべてパスワード設定をしないといけないことになりました。 でも共有しているフォルダやファイルはたくさんあり、 ひとつひとつのエクセルやワードにパスワードを設定するのも 、時間がかかり困ってます。 そこで、ファイルを圧縮し、パスワードを設定しましたが・・・ パスワード入力の要求画面が出て、 うまくいったと思ったのもつかの間、 エクセルファイルを開き、編集後、上書き保存をしたら、「名前を付けて保存」状態になってしました。 よくタイトルバーをみると「読み込み専用」になっていました。 パスワード設定した圧縮フォルダ内の ファイルを自由に編集、上書きする方法はないでしょうか? また、パスワード設定済みの圧縮フォルダに 新しいファイルを追加しても、追加ファイルは パスワード要求なく、通常通りファイルが開いてしまいます。 1)簡単にフォルダやファイルにパスワード設定ができる方法。 2)フォルダに追加したファイルの簡単なパスワード設定方法。 この2点の方法を教えてください。

  • ファイルサイズが大きいときだけ上書きするには?

    表題の通り、ファイルサイズが大きいときだけ上書きするには どのようにしたらよいでしょうか? ファイル数が少なければ、個々にサイズを確認して上書きすればよいのですが、 ファイル数が多い場合、そう言う訳にもいきません。 コピー元のフォルダとコピー先のフォルダを一括して、同一名のファイルの ファイルサイズを比較して、コピー元のファイルサイズの方が大きければ 上書きをするようなソフトは無いでしょうか? どなたか上記の内容が可能なソフトや方法をご存知の方がいらっしゃいましたら お教えください。

  • excelでスタートアップフォルダを指定

    excel2016, windows8.1ユーザーです。 excelでスタートアップフォルダを指定したいと思い、詳細設定から「起動時にすべてのファイルを開くフォルダ」を指定したのですが、意図してたのと違うフォルダを指定してしまい、どのファイル数3000くらい有るフォルダを指定してしまいました。 結果的にエクセルを起動するたびにプログラムは一生懸命すべてのファイルを開こうとして、そのうちにエラーで止まってしまいます。このような状況ですので、設定を元に戻そうとしたくても、エクセルが起動できないという堂々巡りになって困っています。 excelを起動せずに設定変更する方法はあるのでしょうか? もしくは次々とファイルを開こうとする動きを止めて、設定変更するような何か良い方法があるのでしたらご教示頂きたくお願い申し上げます。 宜しくお願い致します。

  • フォルダの上書きコピーってできないんですか?

    たくさんのファイルが入ってる同一名フォルダの新・旧があったとして、どちらかをもう一方にドラッグでコピーしたときに「置き換えますか?」の案内がでますよね?でもこれは、WindowsやMS Officeのようなファイルやフォルダの「上書き」とは違うものですよね? ためしに、ファイル数が10枚のフォルダをファイル数が12枚のフォルダに置き換えしてみたら、10枚ファイル入りのフォルダができたので、これは上書きとは違うなー・・・と気がつきました。 Windowsでよくあるような「上書きコピー」の方法がありましたら教えてください。OSXです。

    • ベストアンサー
    • Mac
  • エクセル 

    フォルダの中にファイルが数十個あります。 (1)フォルダの中のエクセルファイルはすべて用紙が縦で指定されています。 フォルダの中のファイル全部の用紙を横にしたいのですが、一括でフォルダの中のエクセルファイルの用紙指定を横に変更する方法はないでしょうか? やはり、ひとつひとつ用紙の設定を変えて、上書き保存をするしかないでしょうか? (2)各ファイルのタイトルを用紙下につけて印刷をしたいのですが、どうすればいいでしょうか? また、この場合も、フォルダの中のファイルすべて一括でタイトルが印刷できるような指定はできるのでしょうか? どうぞよろしくお願いします。

  • excelで行列を非表示にするとファイルサイズが大きくなるのはなぜ?

    質問はタイトル通りです. ドラッグしたときに不必要にカーソルが縦横に流れていく(この状態わかりますでしょうか?)のが厄介なので,右下の不要な行列を非表示に変えたところ,ファイルサイズが急に1MB近くなり,動きも遅くなってしまいました. こうなる理由はなぜなんでしょう?また,ドラッグしたときに,ある行列以上右,下にカーソルが行かないように,シートの行列数自体を小さくすることはできるのでしょうか?

  • 行列のファイル入力の仕方

    タイトルのとおりCで行列をファイルから入力する方法がわからず困っています。 わかる方いらっしゃったらお願いいたします。

  • エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(

    エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(A1:X365)の値を取得し、コピー元のエクセルファイル名のシートに貼付ける方法を教えて頂けないでしょうか?できればコピー元のエクセルファイルは開かずに実行させたいです。エクセルは2003を使っています。