エクセルで某使用料金の集計表を作成しており、
シート1で実数値を入力し、シート2で単位千円の提出用資料を作成しております。
単純に、シート1で入力された数値を、シート2で同じフォーマットで、INT関数を使用しているだけなのですが、
シート1で新規に行を挿入した場合、シート2でも同様に行を挿入し、数式をコピーして対応しております。

しかしながら、毎月、新規で行を挿入するケースが増え、油断するとシート2への行挿入を忘れるなどの事態が発生しております。

もっと簡易な方法で、シート1で作成した表の、千円単位に変換した表を作成することはできないのでしょうか?

できるだけ易しい方法を教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>シート2A1セルに上記数式をコピーしたのですが、NAMEの表示が出てうまくいきません。



考えられる理由1)
ご利用のシートが添付図左のように「A1」になっていないで,添付図の右側のように行も列も123表示になっているときに回答の式をコピーして入れると#NAME?エラーになります。
行も列も123表示で使っていたときは,数式は1行1列のセルに
=IF(INDEX(Sheet1!C,ROW())="","",INT(INDEX(Sheet1!C,ROW())/1000))
のように入れてコピーします。


考えられる理由2)
コピーして入れたのではなくご自分で数式を記入していて,誤記があると#NAME?エラーになります。
記入した式をよく再確認してください。
何が悪いのかご自分で見つけられないときは,あなたがご自分のエクセルに入れて実際にエラーが出ている「その数式」を実際のエクセルからコピーして掲示し教えてください。


考えられる理由3)
実は出ているエラーが#NAME?ではなく#REF!だった場合は,シート名が実際にあなたが使っているモノと違っています。
実際のシート名に数式を直さなければいけません。
「エクセルでの複数シートへの同時行挿入」の回答画像4
    • good
    • 0

こんにちは!


すでに回答は出ているようなので、参考程度で・・・

VBAでの一例です。
Sheet1のデータをそのままsheet2にコピー&ペーストし、数値のセルだけ千単位の表示にしてみました。
(INT関数をお使いだということなので、下3桁を切り捨てて表示するようにしています。)

Altキー+F11キー → VBE画面がでますので、画面左側にある「THISWorkbook」を選択し、↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, j As Long
Dim c As Range
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1") '←Sheet名は実際のSheet名に!
Set ws2 = Worksheets("sheet2") '←こちらのSheet名も適宜変更
i = ws1.UsedRange.Rows.Count
j = ws1.UsedRange.Columns.Count
Range(ws1.Cells(1, 1), ws1.Cells(i, j)).Copy
ws2.Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
For Each c In Selection
If c <> "" And IsNumeric(c) Then
c = WorksheetFunction.RoundDown(c / 1000, 0)
End If
Next c
ws2.Cells(1, 1).Select
End Sub 'この行まで

Sheet1のデータが変わるたびにマクロを実行する必要があります。
参考になれば良いのですが・・・m(__)m
    • good
    • 0

シート2のA1セルに


=IF(INDEX(Sheet1!A:A,ROW())="","",INT(INDEX(Sheet1!A:A,ROW())/1000))
という式を入れてコピー,シート2の表範囲にずらり埋めて貼り付けておきます。

シート1で如何様に行挿入・行削除しても,全く何もしなくてもシート2はその姿を反映した表になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

シート2A1セルに上記数式をコピーしたのですが、NAMEの表示が出てうまくいきません。

なにか注意点あるのでしょうか?

お礼日時:2011/04/20 07:50

シート1に行を挿入するときにシートを「作業グループ化」してから行の挿入を実行する習慣をつけられてはいかがでしょう。



作業グループ化→まずSheet1のタブをクリックします。次にShiftキーを押しながらSheet2のタブをクリックします。
Sheet1とSheet2のタブが白くなり選択状態になります。
この状態でシート1の行選択をして行を挿入するとシート2にも同時に行が挿入されます。

解除するにはSheet1(2でも可)のタブ上を右クリックし出てきたメニューの「作業グループ解除」をクリックすれば元の状態になります。

その後関数をコピーでは。
    • good
    • 1
この回答へのお礼

早速の返答ありがとうございます。

作業グループ化、やってみました。が、うまくいきません。

シート1をクリック後、shiftキー押しながらシート2を選択し、シート1&2が反転した状態で、
行挿入しようと、行の上で右クリックしても、「挿入」メニューも白字に反転しており実行できません。

なにか方法が違うのでしょうか?

ちなみに、エクセル2007です。

お礼日時:2011/04/19 15:48

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3コピー元ワークシート3

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = Workbooks.Add

'ここからが実際のコピー処理です。
'単純に3回コピーメソッドを呼び出して3回コピーしています。
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)

End Sub

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = W...続きを読む

Qエクセルで、2つのセル値(2つの条件)から、別シートの表から該当する値を参照する方法

シート(1)のA列とB列のセルに入力されている値を元に、
シート(2)の表を参照し、該当する値をシート(1)のC列に
表示させる方法があれば 教えて頂けると助かります。

なおシート(1)のA列は、参照するシート(2)の表の列タイトルに対応し、
シート(1)のB列は、シート(2)の行タイトルに対応するマトリックス表に
なっております。
また、この列行タイトルの表記は「1から」または「1から9まで」
という範囲での表示になっています。

(例:シート(1)元データ)
No| A列 | B列 | C列 |
---------------------------------
1 | 07  |  22  |  20 | ←C列は、シート(2)表を参照 
2 | 18  |  15  |  30 |       
3 | 01  |  09  |  05 |      
4 | 21  |  03  |  30 | 
5 | 30  |  28  |  35 | 


(例:シート(2)参照する表)
A列\B列 | 1~9| 10~19 | 20~29 |
-----------------------------------
  01~  | 05  |  10  |  20  |      
  05~  | 15  |  15  |  20  |        
  10~  | 20  |  25  |  30  |     
  15~  | 25  |  30  |  30  | 
  20~  | 30  |  35  |  35  | 

現在、手作業でC列への入力を行っております。
何とか、作業効率を上げたいと思っておりますので、
ご指導下さいます様 宜しくお願い致します。

シート(1)のA列とB列のセルに入力されている値を元に、
シート(2)の表を参照し、該当する値をシート(1)のC列に
表示させる方法があれば 教えて頂けると助かります。

なおシート(1)のA列は、参照するシート(2)の表の列タイトルに対応し、
シート(1)のB列は、シート(2)の行タイトルに対応するマトリックス表に
なっております。
また、この列行タイトルの表記は「1から」または「1から9まで」
という範囲での表示になっています。

(例:シート(1)元データ)
No| A列 | B列 | C列 |
----...続きを読む

Aベストアンサー

C2セルに
=INDEX($B$9:$D$13,MATCH(A2,$A$9:$A$13),MATCH(B2,$B$8:$D$8))
下へオートフィル。添付図参照。参考まで

Qエクセル 他のファイル(ブック)へシートをコピー

エクセル(2003)で他のファイル(ブック)にシートをコピーする場合,コピー元のシートに他のシートの値を参照するセルがあると,コピー後のシートに参照エラーが起きてしまいます.
これを回避するため,コピー元のシートを全選択してコピーし,コピー先で「形式を選択して貼り付け→数値と数値の書式」をした後,再度コピー元のシート全選択コピーし,コピー先で「形式を選択して貼り付け→書式」とする,という方法で今は作業していますが,一発でできる方法はないでしょうか.
もちろん,コピー先にコピー元の数式を反映させる必要はなく,値がコピーできればOKです,

Aベストアンサー

ワークシートを他のブックにコピーする方法ですが
>コピー先にコピー元の数式を反映させる必要はなく,値がコピーできればOKです,
「反映させる必要が無く」という部分を「反映させてもかまわない」と
解釈すれば
コピー元ブックとコピー先ブックの両方を同時に開いておきます。(コピー先ブックを新規作成する場合は、コピー先ブックは開いておく必要はありません)
コピー元ブックのコピーするワークシートをアクティブにしてメニューバー[編集]~[シートの移動またはコピー]
「シートの移動またはコピー」ダイアログボックスで
「移動先ブック名」の項目で移送先ブックを選びます、新しく作成する場合は「(新しいブック)」を選びます。
「挿入先」の項目で、コピーするシートを挿入する位置を選びます。
「コピーを作成する」項目にチェックを入れます。
[OK]ボタンをクリック
これでワークシートごとコピーすることができます。

ただし、コピー元ブックのほかのワークシートを参照している箇所は、そのまま外部ブックへの参照となっていますので、コピー元ブックを変更した場合、コピーブック先ブックにも反映されてしまいます。

これが不都合なら
コピー先ブックで
メニューバー[ツール]~[オプション]で
「オプション」ダイアログボックスの「計算方法」タブの中の
項目「外部リンクの値を保存する」にチェックが入っていることを確認したうえで
メニューバー[編集]~[リンクの設定]で
「リンクの編集」ダイアログボックスの[起動時の確認]ボタンをクリック
「起動時の確認」ダイアログボックスの[メッセージを表示しないで、リンクの自動更新も行わない]を選択し[OK]ボタンをクリックします。

こうしておけばリンクの手動更新をしない限り、コピー元ブックを変更しても反映されませんし、コピー元ブックをフォルダの移動やあるいは削除してしまっても、参照エラーになることはありません

ワークシートを他のブックにコピーする方法ですが
>コピー先にコピー元の数式を反映させる必要はなく,値がコピーできればOKです,
「反映させる必要が無く」という部分を「反映させてもかまわない」と
解釈すれば
コピー元ブックとコピー先ブックの両方を同時に開いておきます。(コピー先ブックを新規作成する場合は、コピー先ブックは開いておく必要はありません)
コピー元ブックのコピーするワークシートをアクティブにしてメニューバー[編集]~[シートの移動またはコピー]
「シートの移動またはコピ...続きを読む

Qエクセル複数シートの集計方法教えてください

複数シートのエクセル集計作業について質問です。 下記の事例について、何のエクセル技術が必要かを教えて頂けませんでしょうか?さらに、方法まで教えて頂ければ幸いです。 【事例】中学生3学年の部活と帰宅部の人数を調べなければなりません。 シート1、2、3に1年~3年の名簿があります。 名簿には A列に名前B列に部活C列に帰宅部 というカテゴリーを作りました。 部活に入っていれば部活の列に「1」と記入し帰宅部は帰宅部の列に「1」と記入しました。 この3学年分の名簿を、シート4にまとめていっきに集計する事は可能でしょうか? その場合、エクセルの何という技術を駆使したらよいか教えてください。

Aベストアンサー

質問者さんは良い形の表を作られていると思います。こういうのが一番、何でもできる表です。技術を駆使というか、明らかにExcel初級の質問ですが、どのような集計表にしたいのでしょうか?例えばB6セルに「=sum(b2:b5)」と記入するだけでも「部活」の合計人数が出ますし、「部活」のみの名簿が欲しいとか、いろいろあると思います。こんな関数のほかにも、Excelには多様な機能があります。

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3ワークシート

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめる。
 新規ブックのオープンをtestwriteを呼ぶ前に1度だけ行い、
 testwriteの中ではその新規ブックに対してシートを追加していく。
 そしてtestwriteの処理が全部終わったら、
 新規ブックの全シートを1度に「記録シートYYYY/MM/DD.xls」にコピーする。

それでも駄目でしたら、以下の回答No.1を試してみてください。
http://oshiete.goo.ne.jp/qa/1822561.html

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめ...続きを読む

Q【エクセル2003】シート1の表からシート2に別の表を作りだす

こんにちわ。
どなたかおわかりになる方、居られましたらご教示願いたいと思っております。

添付の画像のように1の表がありまして、その表から2のような表を作ろうと考えています。

関数を使って対応したいと考えておりますが、どういった関数を組み合わせばできるでしょうか。
基本的な考え方は、1の表の「Rank」にA、B、Cなどが並んでいますが、
これが、2の「確度」のフィールドに該当するものです。
この「確度」をベースに1でvlookup等を使って、他のフィールドも自動的に埋めていきたいと思っております。

VBでの対応が楽かもしれないのですが、あまり作業に時間がかけられないため、関数で対応することにしています。
「VBの方が簡単な方法で対応できる」という事であれば、VBでもご教示頂けますと幸いです。

宜しく御願致します。

Aベストアンサー

こんばんは!
画像を拡大して一生懸命読み取ろうと頑張ってみましたが・・・

結局、表がどのようになっているのか読み取れませんでした。

もう少し内容が分かるような画像であれば
色々な方から回答が得られると思いますよ。

回答になっていなくて、ごめんなさいね。m(__)m

Qワークシートを別ファイルにコピー出来ない

エクセル2010です。
コピー元ファイルを開き、ファイルメニュー→新規→空白のブック
により新ファイルを開き、コピー先ファイルとして名前を付けて保存、
コピー元ワークシートを選択しシートコピーしようとすると、以下のエラー表示があります。

文面忘れましたが、
コピー元とコピー先でワークシートの行列数が異なるため、コピー出来ない。ワークシートでなくデータを選択し、コピー&ペーストせよ。

ちなみに、作成したコピー先ファイルを一旦閉じて再度開くと、何故か普通にワークシートコピー出来ます。

メッセージに従うとセル幅や印刷範囲の設定がコピーされないので、やりたくありません。
普通にシートコピーしたいのです。一旦閉じて再度開くなどという動作は回避出来ないのでしょうか?

Aベストアンサー

先にコピー先のファイルを作成するのではなく、
コピーしたいシート見出しを右クリック
「移動またはコピー」をクリック
移動先Book名「新しいBook」
「コピーを作成する」にチェック

ではどうでしょうか?

これでもうまくいかなければ、、同様に作業するほかないのかもしれません。

Q複数のシートで同時にシートの保護をしたい。

複数のシートで同時にシートの保護をしたい。

エクセルデータを一括して保護を掛けるやりかたはマクロで紹介されているページを多く拝見したのですが、一部を同時にというのはやはり難しいのでしょうか?

私はマクロのこともあまり詳しくはないのですが、可能な方法があれば楽なのにと思い投稿しました。

現在、出勤表をエクセルで製作しております。
1日~31日までシートが31枚
それを個人別にまとめているシートが20枚
さらに一覧状態にしているシートが3枚
となっており、個別にまとめているシート20枚にキーワード付きシート保護をしたいのです。
キーワードは全シート20枚共通として。

セル設定で日付シートのロックを外す方法も考えたのですが、検索語の置き換え機能が使えなくなるため
いい方法が無いかと思っております。

宜しくお願い致します。

Aベストアンサー

回答No2です。
保護したシートを解除するのでしたら次のようなマクロになりますね。

Sub シートの保護の解除()
Set WS1 = Worksheets("Sheet1")
Dim RowPos As Integer
Application.ScreenUpdating = False
For RowPos = 1 To 20
If WS1.Cells(RowPos, "A") = "" Then Exit For
Worksheets("" & WS1.Cells(RowPos, "A") & "").Activate
ActiveSheet.Unprotect Password:="1234"
Next
WS1.Activate
Application.ScreenUpdating = True
End Sub

QEXCELシートのコピー

あるExcelブックに統計表シート、グラフシート、グラフ用の数値シートがあります。

グラフシートだけ別の場所にコピーすると、コピーしたグラフシートのブックを開いたとき、このグラフシートはコピー元の数値シートにリンクしたままになりますが、このリンクを無効にしてシートコピーする方法はありますか。

Aベストアンサー

こんにちは。

グラフを、セルの値にリンクしないカタチにしたい
という主旨であると判断しました。

グラフをまず選択してください。

そしてShiftを押しながら、メニューの[編集]を選択すると、
「図のコピー」というメニューが現れます。

これをクリックすると、ダイアログが現れますが、
そのままOKします。

そして、シートの何もない部分をクリックします。

そして、メニューから
 編集-貼り付け
で、セルの値にリンクしないグラフ
(正確に言うとこれはグラフの「画像」です)
が貼り付けられます。

Q複数のシートの値を一つのシートに整列

よろしくお願いします。

複数のシートに行も列もバラバラになっているデータを一つのシートの行に整列させたいと思っています。
具体的には下記のようなシートがあります。一つは組織の名前のシート、一つは組織の基礎情報といった感じでシートごとに回答されています。
これを他のシートに一つの組織を一つの行で整列させ分析をしていきたいと思っています。
ファイルが数千あるため、マクロで書こうと思っているのですが、下記のように書いたのですがうまくいきません。

アドバイスをいただけないでしょうか?
ファイルは(アンケートデータ1,アンケートデータ2といった感じで統一、作業フォルダ内にすべて保存)
マクロを動かすセルは”統合”というファイル名、シート1に持ってきます。


Sub Macro1()
Dim i As Integer
For i = 1 To 1000
'アンケートデータファイルを開く

Workbooks.Open Filename:="C:\Documents and Settings\Administrator\My Documents\作業\アンケートデータ" & i" .xls

'アンケートデータファイル 学校名シートのB11 を新しいブックのシート1のA1にコピー

Worksheets(学校名).Activate
Range("B11").Select
Worksheets(統合).Activate
ActiveSheet.Paste
ThisWorkbook.Worksheets(1).Range("A" & i).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True

Worksheets(基本データ).Activate
Range("D3").Select
Worksheets(統合).Activate
ActiveSheet.Paste
ThisWorkbook.Worksheets(1).Range("B" & i).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True

Worksheets(基本データ).Activate
Range("D6").Select
Worksheets(統合).Activate
ActiveSheet.Paste
ThisWorkbook.Worksheets(1).Range("C" & i).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True




'アンケートデータファイルを閉じる
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
Next i
End Sub



最終的には統合ファイル内で

     A(学校名)         B(学校区分)    C(広さ)   D経営状況   E   F
1列  アイウエオ学校       3             500    黒字

2列 
 
といった感じで学校数文行で並ぶようにしたいのです。

上記の式の間違いの指摘、書き方についてアドバイスをください。

よろしくお願いします。

複数のシートに行も列もバラバラになっているデータを一つのシートの行に整列させたいと思っています。
具体的には下記のようなシートがあります。一つは組織の名前のシート、一つは組織の基礎情報といった感じでシートごとに回答されています。
これを他のシートに一つの組織を一つの行で整列させ分析をしていきたいと思っています。
ファイルが数千あるため、マクロで書こうと思っているのですが、下記のように書いたのですがうまくいきません。

アドバイスをいただけないでしょうか?...続きを読む

Aベストアンサー

イチイチ開いては閉じるしないマクロの書き方です

Sub macro1()
 Application.DisplayAlerts = False
 Worksheets("統合").Activate
 Range("A:C").ClearContents

 Range("A1") = "zzz'C:\Documents and Settings\Administrator\My Documents\作業\[アンケートデータ1.xls]学校名'!" 'B11
 Range("A1:A1000").DataSeries Rowcol:=xlColumns, Type:=xlAutoFill
 Range("A:A").Replace what:="!", replacement:="!B11", lookat:=xlPart

 Range("B1") = "zzz'C:\Documents and Settings\Administrator\My Documents\作業\[アンケートデータ1.xls]基本データ'!" 'D3
 Range("B1:B1000").DataSeries Rowcol:=xlColumns, Type:=xlAutoFill
 Range("B:B").Replace what:="!", replacement:="!D3", lookat:=xlPart

 Range("C1") = "zzz'C:\Documents and Settings\Administrator\My Documents\作業\[アンケートデータ1.xls]基本データ'!" 'D6
 Range("C1:C1000").DataSeries Rowcol:=xlColumns, Type:=xlAutoFill
 Range("C:C").Replace what:="!", replacement:="!D6", lookat:=xlPart

 Range("A:C").Replace what:="zzz", replacement:="=", lookat:=xlPart
 Application.DisplayAlerts = True
End Sub



#参考
間違いの指摘:
>…アンケートデータ" & i" .xls

&や”で閉じる”のように、手抜きせずキチンと書き切ります


>Worksheets(学校名).Activate
>Worksheets(統合).Activate
>Worksheets(基本データ).Activate

worksheets("シート名")のように、””で囲って記入します

イチイチ開いては閉じるしないマクロの書き方です

Sub macro1()
 Application.DisplayAlerts = False
 Worksheets("統合").Activate
 Range("A:C").ClearContents

 Range("A1") = "zzz'C:\Documents and Settings\Administrator\My Documents\作業\[アンケートデータ1.xls]学校名'!" 'B11
 Range("A1:A1000").DataSeries Rowcol:=xlColumns, Type:=xlAutoFill
 Range("A:A").Replace what:="!", replacement:="!B11", lookat:=xlPart

 Range("B1") = "zzz'C:\Documents and Settings\Administrator\...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報