• 締切済み

Excelにおけるデータ統合

Excel関係の書籍では、“(離れた位置にある)データの統合(consolidation)”の標準機能およびVBAによる手法について記述されていますが、いずれも、この“データ”は数値を対象にしています。 “データ”として数値ではなく文字列(たとえば、英文)はExcelのデータ統合(consolidation)機能の対象になるのでしょうか。私にとって統合を必要とする対象は、複数(数十~数百)のメンバー各々のExcel bookです(カラム、シート、レコードの使い方、名称等フォーマットは各book間で共通で、レコード内容は英文 文字列 - センテンスないしフレーズ - です)。 VBAで処理できるでしょうか、事例等、手かがりをご指導ください。

  • sumup
  • お礼率100% (2/2)

みんなの回答

  • seastar3
  • ベストアンサー率69% (99/142)
回答No.2

 ちょっと習作的に同じフォルダにあるすべてのExcelワークシートの特定範囲を抽出するマクロを組んでみました。デバッグ済みですので、よかったら参考にしてみて下さい。  ただ、質問がネットワーク間の抽出だとしたら、PHPやASPやPerl等のサーバ再度プログラミング技術が必要になるでしょう。                             海星 Private Sub CommandButton1_Click() Dim objFS As Object, objFolder As Object, colFiles As Object Dim i As Integer Dim strPath As String Dim aFile As Variant Dim cellsPut As Range Dim xlsApp As Object, xlsBook As Object, xlsSheet As Object Set objFS = CreateObject("Scripting.FileSystemObject") strPath = ActiveWorkbook.Path Set xlsApp = CreateObject("Excel.Application") xlsApp.Application.Visible = False Set objFolder = objFS.GetFolder(strPath) Set colFiles = objFolder.Files i = 5 For Each aFile In colFiles If LCase(objFS.GetExtensionName(aFile)) = "xls" Then Set xlsBook = xlsApp.Workbooks.Open(aFile, , True) Set xlsSheet = xlsBook.Sheets(1) ' もし中身がエクセルファイルなら、シート1の2行目のAからDまで(Cells関数の(2,1)~(2,4)にあたる) ' を抜き出してこのマクロを動かしているシート1の5行目から順番に書き込んでいく。もし範囲を変えたいときはこの座標を操作する。 ' 同様にもし3行分ずつ埋め込むのなら、i=i+1 を i=i+3 という風に変更する。 xlsSheet.Range(xlsSheet.Cells(2, 1), xlsSheet.Cells(2, 4)).Copy ThisWorkbook.Sheets(1).Paste (ThisWorkbook.Sheets(1).Cells(i, 1)) i = i + 1 xlsBook.Close End If Next xlsApp.Application.Quit Set xlsSheet = Nothing Set xlsBook = Nothing Set xlsApp = Nothing Set colFiles = Nothing Set objFolder = Nothing Set objFS = Nothing End Sub

sumup
質問者

お礼

大変貴重なご回答をお寄せくださり誠に有難うございます。 ネットワーク間の統合ではなくMicrosoft Office Live Workspace 上での統合を考えています。assemblerプログラミングの経験しか ない私ですが取り組んでみます。有難うございました。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

excelをほとんど使わない私が言うのもなんですが、 VBAを使えば、エクセルファイルを開くこともできますし、 セルに入っているデータを読み出すこともできます。 それを他の場所にしまうこともできますし、 ファイルに書き出すこともできます。 どのようなタイミングで、 (どのように統合するファイルが集められるのか) 何のためにデータを統合するのか (統合してそれをどうするのか) がわかれば、エクセルを使うべきなのか、 アクセスなどデータベースで処理したほうが良いのか、 テキストファイルで処理できるものなのかが変わってきます。 個人的にはアクセスかなんかで処理するほうが楽そうな気はします。

sumup
質問者

お礼

ご親切なご回答をお寄せくださり誠に有難うございます。 おっしゃられる通りAccessが最適かも知れませんが 投稿者が必ずしもコンピュータソフトに慣れ親しんでいる 人に限りませんし、投稿者は日本人に限りませんので、 cost-lessで、シンプル、プレインな仕組みを作ることに 苦慮しています。お寄せくださったご回答をヒントに更に 詰めてゆきます。有難うございました。

関連するQ&A

  • エクセルデータツールで文字を統合する方法

    エクセルのデータツールで数値は統合されるが文字が統合されません。 数値と文字同時に統合する方法はないのでしょうか。 ファィルを添付します。 よろしくおねがいします。

  • Excelの2つのBOOKのデータ統合のVBA

    Excelの2つのBOOKの項目が同じリストのデータを統合できるVBAを教えてください。項目は、処理結果、金額、年月日、番号、品名の5項目がA列~E列まででデータは複数行あります。VBAは初心者です。どうぞよろしくお願いいたします。

  • エクセル97に「データの統合」機能はない?

     自宅でエクセル97を使っている友人が、先日「データの統合」機能を使おうとしたらしいのですが、機能が見つからないというのです。友人いわく、「ふるいエクセルにはついてないってことなのかなぁ」とボヤいてました。  どなたかこのあたりの事情に詳しい方がおられましたらアドバイスをお願いしたいのですが。

  • エクセルの統合

    エクセル2007を使用しています。統合機能を使って、上端行左端列にチェックを入れまして表を統合しました。 お聞きしたいのは、統合した結果、左端列の項目の並びなのですが、何か基準があるのでしょうか。 あいうえお順でも、範囲選択した順でもありません。ご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。

  • ExcelでCVSファイルの文字列を変換。

    初めまして。 CVSを開くとデータは「123」と表示されるのですが、メモ帳などからCVSファイルを開くと「0123」と文字列になってます。 EXCELファイル上で開くと「123」と数値になってしまって困ってます。これを、「0123」と文字列にしたいのですがどうしたらいいですか?? EXCELでA列を「0123」、「025」と番号を文字列に表示してB列に名前、C列には数値にしたのですがどう処理すればいいかわかりません。。。。 EXCEL VBAで処理するしかないのですか?? プログラムにはあまり自信がないです。。。 もし、EXCEL VBAで処理する方法があるなら参考などを教えてくれませんか?? よろしくお願いします。

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

  • Excel ピボットテーブル 外部データ取り込み

    外部データ取り込みによるピボットテーブルにて、値が0となり正しい値が表示されません。 Book1にデータを蓄積しています。 Book2でBook1のデータを取り込んでピボットテーブルを作成したところ、あるフィールドの集計値だけが0となってしまいます。 問題はBook2でデータを取り込んだ際に、そのフィールドだけが文字列扱いになってしまっているようです。(ピボットテーブルのセルの詳細表示にて、文字列となっていることを確認) Book1にてピボットテーブルを作成した場合、そのフィールドは数値として認識しています。 どのように対処すれば、数値として認識してくれるのでしょうか? 動作環境 Win7 Excel 2010

  • エクセル2003のVBAを教えて

    エクセル2003のVBAを教えてください。 次の対象データで、(1)(2)(3)の作業が出来るエクセルVBAを教えて下さい。 (1)(2)(3)個々のVBAでお願いします。 ●対象データ:種類(A列)、文字(B列)、    データの行数:不特定なので、データのある最終行までとします。 ●教えていただきたい項目  (1):種類だけを(C列)に取り出す。  (2):種類の先頭に空白の行を3行入れて、追加の2行目の種類(A列)に文字(B列)を入れる。  (3):種類が5行以上あるときは、5行ごとに空白行を追加する。 ●対象データ 種類(A列)   文字(B列) AA       あああ BB       いいい BB       いい BB       いいい CC       うう CC       うう DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ ●(1)のVBAの結果(このようになるVBAを教えてください。) (C列) AA BB CC DD ●(2)、(3)のVBAの結果(このようになるVBAを教えてください。) 種類(A列)    文字(B列) あああ AA        あああ いいい BB        いいい BB        いいい BB        いいい うう CC        うう CC        うう ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ

  • Excelのことですっごく困ってます!!!!

    エクセルでオートフィル機能を使うと連続データの入力や文字列などをコピーしたり出来ますよね!! そこで質問なんですが、数百の数値が入力されていて指定したセルに数式を入力してオートフィル機能を実行すれば簡単に全部にその数式が適用されるとは思うのですが、数百の数値の中に文字列が入力されている場合「0」か「エラー」が入力されてしまうと思うのですが、文字列だけを飛ばして数値入力されている行だけに数式を適用されるようにすることは出来ないのでしょうか???? データが限りない数あります。文字列の行に入力されてしまう「0」や「エラー」を消すだけでもかなりの数になってしまうのです。期限のあるものなのですごく困ってます!! エクセルの詳しい方大至急助けてください!!!!!!!!!!

  • エクセルでA列とB列のデータを統合するには?

    エクセルでA列とB列のデータを統合することはできるでしょうか?よろしくおねがいします。 A列^^^^^B列 1,^^^^^^Tokyo 2,^^^^^^Osaka 3,^^^^^^Nagoya 下のようにしたいのです。「^^」はスペースをあらわします。 A列^^^^^^^B列(データはなし) 1^^Tokyo 2^^Osaka 3^^Nagoya エクセル2002です。