今だけ人気マンガ100円レンタル特集♪

こんにちわ。

販売管理をエクセルで行っております。
その際にちょっと出来ないかな??と思うことが出てきましたので書き込みました。

たとえば、新規作成のBookでSheet1~3があります。
やりたいことは、
Sheet1の4行目と5行目の間に2行を挿入した場合、連携してSheet2やSheet3の4行目と5行目のように同じ箇所に同じ追加した行数分、挿入されて欲しいわけです。

ちょっと説明が難しいな・・・、言いたいこと伝わってますかね??
これが出来たらすっごい効率Upなんですが・・・出来ませんか??

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

A 回答 (3件)

変更したいシートのタブ(下のsheet1)を変更したいシートのところだけ、Ctrlを押しながら選択し、どのシートでもかまいませんから行なり、列なりを挿入する。

これで、選択したシートも同じ部分だけ変更されます。

この回答への補足

有難う御座います!追加はできました・・・。
1つ補足で・・・。
いつ上の行の式がコピーされる・・・というようなことはさすがに不可能ですよね?

補足日時:2002/11/13 09:32
    • good
    • 2

こんにちは。

maruru01です。

No.1の人の方法は、複数のシートを選択して(作業グループにする)、同じ動作を行うというものですが、それぞれのシートで違う動作(行挿入の位置が違うとか)をさせる場合は、VBAで書く必要があります。
どちらなんでしょうか。
    • good
    • 1
この回答へのお礼

有難う御座います。
違う動作なんて・・・難しいことは考えていませんでした♪
エクセルを本格的に使いこなすためにもちょっとVBAを勉強しないといけませんね。反対に、出来ることも使えないままだともったいないですし・・・。
有難う御座いました。

お礼日時:2002/11/26 09:00

シートをまとめて選択して修正を行えば、選択されたシートにすべて同じ修正が加わります。


なので、挿入が終わったら、必ず、シートを一つだけに選択しなおすことを
忘れないようにする必要がありますよ。
    • good
    • 0
この回答へのお礼

わかりました!有難う御座います!!

お礼日時:2002/11/26 09:04

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

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

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

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

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

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QExcelで行が挿入したときに、自動的に別シートにも挿入したい

お世話になります。

例えばシート1の11行目に行が挿入された場合、
シート2の11行目にも自動的に行が追加されるような
マクロを作りたいのですが、どうも検索で情報が
見つかりませんでした。

ご存知のかたがおられましたら、よろしく
お願いいたします。

Aベストアンサー

こんにちは。

ご質問は、簡単そうにみえて、あまり簡単ではありませんね。イベントには違いはないのですが、通常のイベントとは違います。インスタンスが必要です。

実は、今回、私は、いろんなところを手抜きをしているし、おまけにクラスモジュールを使わなかったのですが、たぶん、以下で可能なはずです。ボタン自体は、本来は1つで足りるはずですが、これも手抜きです。(もし、クラス・インスタンスが必要なら、作り直します。そのほうが安全性は高いです。)

行全体と、セル単独の挿入があり、また、右クリックメニューと、標準メニューの挿入の行からの命令がありますから、それらのコマンドバーボタンにイベントをつけてあげればよいわけです。

SettingInsertButton() が、設定用ですが、後は、ThisWorkbook_Openで、自動的に設定するようにしてありますから、起動と同時に設定されます。ブックの区別はしてありませんので、必要なら、ThisWorkbook.Sheet1 というようにしてください。なお、Sheet1はオブジェクト・ネームで、シート名ではありませんから、お間違えないように。このコードは、シートモジュールや、標準モジュールに書くことはできません。(一部を除いて)

'<ThisWorkbook のみ>
Option Explicit

Private WithEvents myBtn As Office.CommandBarButton
Private WithEvents myBtn2 As Office.CommandBarButton
Private WithEvents myBtn3 As Office.CommandBarButton

Sub SettingInsertButton()
'ボタンの設定
  With Application
   Set myBtn = .CommandBars("Cell") _
   .FindControl(, 3181)
   Set myBtn2 = .CommandBars("Row") _
   .FindControl(, 3183)
   Set myBtn3 = .CommandBars("Worksheet Menu Bar") _
   .Controls("挿入(&I)").Controls("行(&R)")
  End With
End Sub


Private Sub myBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Dim myRng As Range
 'セルの挿入のイベント/コマンドバーを含む
 Set myRng = Selection
 Application.EnableEvents = False
 Call myProcedure(myRng)
 Application.EnableEvents = True
End Sub
Private Sub myBtn2_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
 Dim myRng As Range
 '行全体の挿入のイベント
 Set myRng = Selection
 Application.EnableEvents = False
 Call myProcedure(myRng)
 Application.EnableEvents = True
End Sub
Private Sub myBtn3_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
 Dim myRng As Range
 'メニューの挿入の行からのイベント
 Set myRng = Selection
 Application.EnableEvents = False
 Call myProcedure(myRng)
 Application.EnableEvents = True
End Sub


Private Sub myProcedure(arg As Range)
Dim myRngAdd As String
 'シート1でない場合は、除外
 If ActiveSheet.Name <> Sheet1.Name Then Exit Sub
 myRngAdd = arg.Address(0, 0)
 '行挿入
 If arg.Address(0, 0) = arg.EntireRow.Address(0, 0) Then
 '行全体
   Sheet2.Range(myRngAdd).EntireRow.Insert
 Else
 'セルの範囲
   Sheet2.Range(myRngAdd).Insert
 End If
End Sub
Private Sub Workbook_Open()
'起動時の設定
  Call ThisWorkbook.SettingInsertButton
End Sub

こんにちは。

ご質問は、簡単そうにみえて、あまり簡単ではありませんね。イベントには違いはないのですが、通常のイベントとは違います。インスタンスが必要です。

実は、今回、私は、いろんなところを手抜きをしているし、おまけにクラスモジュールを使わなかったのですが、たぶん、以下で可能なはずです。ボタン自体は、本来は1つで足りるはずですが、これも手抜きです。(もし、クラス・インスタンスが必要なら、作り直します。そのほうが安全性は高いです。)

行全体と、セル単独の挿入があり、また...続きを読む

Qエクセルでの複数シートへの同時行挿入

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

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

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

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

Aベストアンサー

>シート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!だった場合は,シート名が実際にあなたが使っているモノと違っています。
実際のシート名に数式を直さなければいけません。

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

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


考えられる理由2)
コピーして入れたのではなく...続きを読む

QExcelで入力したデータを他のシートにも反映したいです

Excelでシートに入力したデータだけを他のシートに表示させたいです・・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。

シート1
 Å列    B列 C列    
キャベツ     玉   1
りんご     個   2
オレンジ    個
バナナ     本   10
きゅうり    本
ニラ     Kg  20.5

シート2
 Å列    B列 C列
キャベツ     玉  1
りんご     個  2
バナナ     本  10
ニラ     Kg  20.5

↑のように。シート1に入力したデータを入力した行ごと表示させたいです。

Aベストアンサー

》 なにぶん初心者なもので…

関数を一切使用しない方法(フィルタオプションの設定)をご紹介します。

Sheet1
1   A    B   C
1 品名   単位 数量
2 キャベツ 玉    1
3 りんご  個    2
4 オレンジ 個
5 バナナ  本   10
6 きゅうり 本
7 ニラ   Kg  20.5
8

添付図は[フィルタオプションの設定]を開始する Sheet2 を示しています。
([データ]→[フィルタ]→[フィルタオプションの設定]の手順を実行します)

Q行、列の挿入がリンク先に反映できないでしょうか

ブック1のシート1に下記の書き込みがあります
  A    B    C    D
1 扉   123  456
2 床   789  012
3 天井  345  678
4
このA1~D4を別のブック2のシート1に「リンク貼り付け」しました。
保存後、ブック1の2行目に下記のように挿入してもブック2には反映されないようです。
  A    B    C   D
1 扉   123  456
2 食堂  111  222
3 床   789  012
4 天井  345  678
再度リンク貼り付けせずに反映できる方法は無いでしょうか?使用ソフトはExcel2003です。よろしくお願いします

Aベストアンサー

Book2 の任意のセルに次式を入力して、此れを右方向および下方向にズズーッと複写したら如何かと。
=IF(INDEX([Book1.xls]Sheet1!$A$1:$C$4,ROW(A1),COLUMN(A1))="","",INDEX([Book1.xls]Sheet1!$A$1:$C$4,ROW(A1),COLUMN(A1)))

Qエクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した

エクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した場合にリンク先シートの行も挿入になってほしいのですが・・・

例えば
Sheet1
   A    B
1 Aさん  150
2 Bさん  270
3 Cさん  100
4 Dさん  300
5 Eさん  350

と入力し、Sheet2に以下の式?を入力した場合
Sheet2の式                   Sheet2の表示
     A        B               A     B    
1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300
2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540
3 =Sheet1!A3  =Sheet1!B3*2  ->  3 Cさん  200
4 =Sheet1!A4  =Sheet1!B4*2       4 Dさん  600
5 =Sheet1!A5  =Sheet1!B5*2       5 Eさん  700
このようになるかと思います。

Sheet1の3行目に行を挿入した場合ですが
Sheet1
   A    B
1 Aさん  150
2 Bさん  270
3 ←行の挿入→
4 Cさん  100
5 Dさん  300
6 Eさん  350

Sheet2は以下のようになってしまします。
Sheet2の式                   Sheet2の表示
     A        B               A     B    
1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300
2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540
3 =Sheet1!A4  =Sheet1!B4*2  ->  3 Cさん  200
4 =Sheet1!A5  =Sheet1!B5*2       4 Dさん  600
5 =Sheet1!A6  =Sheet1!B6*2       5 Eさん  700

元シートに行を挿入した場合以下のようになってほしいのですが方法はございますでしょうか?
Sheet2の式                   Sheet2の表示
     A        B               A     B    
1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300
2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540
3 =Sheet1!A3  =Sheet1!B3*2  ->  3  空白  空白
4 =Sheet1!A4  =Sheet1!B4*2       4 Cさん  200
5 =Sheet1!A5  =Sheet1!B5*2       5 Dさん  600
6 =Sheet1!A6  =Sheet1!B6*2       6 Eさん  700

因みにエクセルのバージョンは2003です。
いろいろと調べてみたのですがやり方を見つける事ができませんでした。
マクロを組めば出来そうな気もするのですがなにぶん素人なもので組み方もわからず困り果ててしまいました。
初歩的な質問で申し訳ございませんがどなたかご指導よろしくお願いします。

エクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した場合にリンク先シートの行も挿入になってほしいのですが・・・

例えば
Sheet1
   A    B
1 Aさん  150
2 Bさん  270
3 Cさん  100
4 Dさん  300
5 Eさん  350

と入力し、Sheet2に以下の式?を入力した場合
Sheet2の式                   Sheet2の表示
     A        B               A     B    
1 =Sheet1!A1  =Sheet1!B1*2   ...続きを読む

Aベストアンサー

こんにちは。ハンドルネームconantheです。解決法を2つ考えました。

1つめは、シート1とシート2を選択しておいてから行挿入する方法です。Shiftキーを押しながらシート1とシート2の下のタブをクリックすれば、シート2枚が選択できます。選択後、行挿入します。シート2の3行目に新たに式をコピーしなければいけませんが、これが一番単純なやり方です。

2つめは、「=Sheet1!A1  =Sheet1!B1*2」の代わりに下の式を使う方法です。
=OFFSET(Sheet1!$A$1,ROW()-1,COLUMN()-1)  =OFFSET(Sheet1!$A$1,ROW()-1,COLUMN()-1)*2

シート2の行は増えませんが、データは下へ1行ずつスライドします。行挿入後、シート2の一番下の行の式を下に1行分コピーしてください。前もって無人の行にも式を入れておけばこの手間は省けます。0が並んで見苦しいですが、0を非表示に設定しておけば回避できます。


どちらのやり方も、シート1とシート2の構造が同じと仮定してあります。つまりAさんは必ず1行目にいるということです。違う場合は、少し式を変えなければいけません。

こんにちは。ハンドルネームconantheです。解決法を2つ考えました。

1つめは、シート1とシート2を選択しておいてから行挿入する方法です。Shiftキーを押しながらシート1とシート2の下のタブをクリックすれば、シート2枚が選択できます。選択後、行挿入します。シート2の3行目に新たに式をコピーしなければいけませんが、これが一番単純なやり方です。

2つめは、「=Sheet1!A1  =Sheet1!B1*2」の代わりに下の式を使う方法です。
=OFFSET(Sheet1!$A$1,ROW()-1,COLUMN()-1)  =OFFSET(Sheet1!$A$1,ROW()-1,COLUMN...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセルのシートを同時に行削除、行挿入させて自動連動させたい

エクセルで、横(列)256列以上のデータを入力したいため、シートを分けざるをえません。その場合、次のようなことがしたいとき、どのようにすればよろしいでしょうか?(やりたいことの結論下記(3)になります。)

エクセルのシートが2つ以上あるとします。
(1)「sheet1」には、基本データ(名簿録のようなもの・氏名ふりがなアイウエオ順配列)

(2)ふたつめ以降のシートには、毎月変更するデータを入力し、「sheet1」の名簿の個々のIDに対応したそれぞれ同じ行番号に入力することになります。

(3)「sheet1」で行削除(名簿対象者解約)や行挿入(新規契約者)を任意の場所で行いたい。それに連動して、2つ目以降のシートでも同じ列で行削除・行挿入を自動でしたい。

★この簡易システムを作成するのはマクロ初心者の私であり、日々の入力作業するのはエクセルそのものが初心者である他者となります。

★行挿入、行削除のときだけシートの同時選択を手作業でしてもらうことは想定していません。そのあたりをも含めた自動化の智恵がでてこないのです。

以上、よろしくお願いします。

エクセルで、横(列)256列以上のデータを入力したいため、シートを分けざるをえません。その場合、次のようなことがしたいとき、どのようにすればよろしいでしょうか?(やりたいことの結論下記(3)になります。)

エクセルのシートが2つ以上あるとします。
(1)「sheet1」には、基本データ(名簿録のようなもの・氏名ふりがなアイウエオ順配列)

(2)ふたつめ以降のシートには、毎月変更するデータを入力し、「sheet1」の名簿の個々のIDに対応したそれぞれ同じ行番号に入力することになります。

(3)「sh...続きを読む

Aベストアンサー

1. ALT+F11でVBA(マクロ)の画面がでます。

2. そして左にThisWorkbookというオブジェクトがあったらダブルクリックします。

3. 右に白い窓が出たらさっきのコードを全部貼り付けてください。

4. その後、ワークシートに戻っててきとうながセルで右クリックしてみてください。


↓ ちょっと書き換えてみました。

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim RT As Long
Dim mySh As Worksheet
Dim myRow As Long

Cancel = True

myRow = Target.Row

If Sh.Name <> "Sheet1" Then Exit Sub

RT = Val(InputBox("1=挿入" & Chr(10) & Chr(13) & _
"2=削除" & Chr(10) & Chr(13) & _
"3=キャンセル"))

If RT <> 3 And RT <> 0 Then
For Each mySh In Worksheets
mySh.Select
Rows(myRow).Select
Select Case RT
Case 1
Selection.Insert Shift:=xlDown
Case 2
Selection.Delete Shift:=xlUp
Case 3
End Select
Next mySh
End If
Sh.Select
End Sub

1. ALT+F11でVBA(マクロ)の画面がでます。

2. そして左にThisWorkbookというオブジェクトがあったらダブルクリックします。

3. 右に白い窓が出たらさっきのコードを全部貼り付けてください。

4. その後、ワークシートに戻っててきとうながセルで右クリックしてみてください。


↓ ちょっと書き換えてみました。

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim RT As Long
Dim mySh As Worksheet
Dim myRow As Lon...続きを読む

Qexcel:行挿入までは参照できない?

何枚ものワークシートを「IF」で一覧表に
参照するまでは、なんとかできましたが、
次の問題点にぶつかってしまいました。

参照元のデータ途中に行を挿入しても、
参照先であるデータには「自動的に」反映されません。
手動で新たに設定しなおせば、もちろん反映はされるのですが、
元の行データを操作した際に、一覧のデータまで「自動的」に反映させたいです。
これを解決する方法はありますか?

Aベストアンサー

元のシートに挿入された行が2行目以降でしたら、
数式のあるシートの一番上の数式が入っているセルの右下の小さな四角を
マウスポインタでポイントしますと+の形になります。
そこでWクリックしますと、セル参照も上から連続して入力されます。

あとはINDIRECTという関数を使ったり、ROWという関数を使ったりすれば上記の操作をしなくてもすみますが、
これは再計算関数なのでどこかのセルに何か入力したりするたびにExcelは再計算をしてくれて
結構もたもた重いファイルになってしまいます。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


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

人気Q&Aランキング