日計表などの作成にあたって、例えばエクセルのセルA1には日々の金額を打ち込んで、セルB1には、累計額を表示する表を作成したいのですが、どのようにすれば、毎日シートを出して今日の日計を打ち込めば自動的に累計が、前日残に加算されるようにできるか教えてください。前日のシートをいちいちコピーせずに今日の金額を入力すれば、昨日までの累計に加算される資料の作成です。

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

A 回答 (3件)

質問の意味を完全に捉えていないかもしれませんが。

。。

>前日のシートをいちいちコピーせずに・・・
とあるので、『A列の複数個のセルに当日の日計を入力すると、B列の複数個は前日までの合計で、そこに当日分が加算される』としてみました。
例えば、日計には10個の項目があり、A1からA10までに入力すると、B1からB10に合計が計算されるとしてみました。複雑に考えすぎ?


Sheet1を使用する例です。ツール→マクロ→Visual Basic Editor でVBE画面に移り、
表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示して、Sheet1をダブルクリック。
出てきたコードウインドウに下記マクロを貼り付けます。
シートに戻り、Sheet1のA列に入力するとその値をB列に加算します。

↓ここから
Const inpColumn = "A" '入力する列名が『A』列の場合

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  With Target
    '単一セルに入力した場合
    If .Count = 1 Then
      '入力する列名に入力した場合
      If .Column = Range(inpColumn & "1").Column Then
        '入力が数値の場合
        If IsNumeric(.Value) Then
          '隣の列『B列』の値に入力した値を加える
          '(Offsetの2番目の1が1つ右のB列を示す)
          .Offset(0, 1) = .Offset(0, 1) + .Value
        End If
      End If
    End If
  End With
End Sub
    • good
    • 2
この回答へのお礼

初めまして、感謝!感謝!です。
自信なしとなっておりましたが、記載どおりに貼り付けようとしたのですが、私には、貼り付けする方法がわからず、とにかく打ち込みました。
結果は、私の質問への回答に合致しておりました(^。^)
本当に有り難うございます。
早速、職場の歳入、歳出の日計資料に取り入れさせていただきます。
私も、もっと勉強しなくてはと・・・・
  まずは、御礼かたがた、失礼致します。

お礼日時:2002/03/14 09:41

 ご質問の詳細が解らず、希望どおりにというわけではないかもしれませんが、もしも前日の累計額を残す必要がなく、集計期間の累計額を表示したいというのであれば、下記の方法が考えられます。

前日累計額も表示したいのなら#1の方法が面倒が少ないかと思います。
1)A列に各日額を打ち込む→B1に累計額を出す場合、
 =sum(a:a)をB1セルに入れることで、A列に入れた日額の累計が出せます。
2)1ヶ月分、もしくは1年分の日金額を入れる表があり、それに12ヶ月分、もしくは数年分のシートがあって、それらの累計を表示したい場合
 例として1ヶ月ごとのシートがある場合で説明します。
 各シートとも、A列に日額を打ち込む
 =sum(sheet1:sheet12!a:a)とすれば、各シート(sheet1は指定した最初のシート、sheet12は指定した最後のシート)のA列の数値が全て合計されます。シート名は任意でかまいません。累計の式はどこにあっても計算されますが、別のシートに計算式を入れておくと、途中でシートを追加挿入しても大丈夫です。
3)日計を入力するファイルが日にちによって別の場合
 簡単な設定方法はわかりません。ごめんなさい
4)固定したセルに次々と日計を入力して、その累計を出したい場合
 一つのセルに次々と数値データを入力しても、excelは最後に入力した数値しか覚えていてくれないので、別表に自動的に金額が挿入されていって、累計額表示のセルは挿入された金額が載っている表を合計するように作る必要があります。エンターキーを押すと入力した金額が別表に次々コピーされるマクロを作成して、そこを参照するsum関数を用いれば可能ですが割愛させていただきます。
    • good
    • 1
この回答へのお礼

早速のご指導有り難うございます。
一通り、試してみましたが、私の質問説明の足りなさですみませんが、回答者No.3の方のが、今回作成している、歳入、歳出の資料に合致しておりましたので、そちらを参考にさせていただくことにいたしました。
貴重なご時間ありがとうございました。

お礼日時:2002/03/14 09:58

1行目が始まりとしますと、B1に「=A1」と入れて、


B2には「=B1+A2」と入れます、後はB2のセルを指定して、B2セルの右下の角にマウスを持っていくと+に変わりますので、その状態でクリックしたまま、B3以下へ+を下げてコピーしてやれば出来ます
    • good
    • 1
この回答へのお礼

早速ありがとう、ございます。
上手く質問が書けなくてすみませんでした。
作成したい、資料が横に1列づつの資料ですので、回答者No.3の方のを採用させていただきました。
貴重な、時間ありがとうございました。

お礼日時:2002/03/14 09:44

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

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

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

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

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

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Qエクセル2013での日計、月計、累計データの作成。

図のような様式で、日計欄に収入、支出をそれぞれ入力するだけで、月計と累計に自動計算されるような方法が知りたいです。収入簿、支出簿など別表を用意せずに、日計欄に入力された数値がそれぞれの下の行の月計欄と累計欄に自動加算されていくものを作成したいです。
調べましたら、VBAが必要なようですが、当方まったくVBAに関する知識がないのでご教授ください。。
似たような質問をされている方がいらっしゃいました(参考URL:http://oshiete.goo.ne.jp/qa/233679.html)が、この方は列方向へ計算されるようなやり方を求めてらっしゃいました。その回答にあったVBAコードを一部変えてみたりして応用できないか試したのですが、案の定エラーが出てできませんでした(笑)
質問内容は以上です、どうかご解答をよろしくお願いいたします。

余談:今までは日計の数値を電卓で月計と累計に足し算して得られた数値を月計と累計にそれぞれ入力していましたが、それだと入力ミスなどが発生するということで、上司から自動で計算されるように改善すること、との指示があったため、今回この質問をするにいたりました。

図のような様式で、日計欄に収入、支出をそれぞれ入力するだけで、月計と累計に自動計算されるような方法が知りたいです。収入簿、支出簿など別表を用意せずに、日計欄に入力された数値がそれぞれの下の行の月計欄と累計欄に自動加算されていくものを作成したいです。
調べましたら、VBAが必要なようですが、当方まったくVBAに関する知識がないのでご教授ください。。
似たような質問をされている方がいらっしゃいました(参考URL:http://oshiete.goo.ne.jp/qa/233679.html)が、この方は列方向へ計算されるよ...続きを読む

Aベストアンサー

基本的にはNo1の方の意見に賛成ですが、集計表は作成しない前提で回答します。
「日計欄に収入、支出をそれぞれ入力するだけで、月計と累計に自動計算されるような方法」
は、実現可能ですが、あまり賛成できません。
1案:(自動実行の場合)
例では、1月2日の日計欄の支出に80と入力時
月計に130、塁計に130が表示されることを期待していますが、
もし、80と打ち込んで、月計に130、塁計に130が表示されたのち、
実は80は誤りで90が正しかった気が付いたときは、手遅れになります。
そこで、支出に90と打ち込むと、90が加算されるので
月計に220、塁計に220が表示されてしまいます。
その為、月計に50、塁計に50と前の状態に戻してから(手入力で戻すしか方法はありません)
再度、90を打ち直すことになりますが、それで良いでしょうか。
それでも良ければ、そのような、自動計算を行うマクロの提供は可能です。

私としては、
2案:(人間がマクロを実行の場合)
支出、収入を打ち込んだ後、自動計算ではなく、人間が別途登録してあるマクロを実行するようにしたほうが
間違いが少なくなると考えますがいかがでしょうか。
そのマクロが実行されると、
月計収入=月計収入+日計収入
累計収入=累計収入+日計収入
月計支出=月計支出+日計支出
累計支出=累計支出+日計支出
の計算が行われ、月計、累計が計算されます。
(もっとも、マクロを実行後、日計の打ち誤りに気づいた場合は、同じように手遅れになりますが・・・)

基本的にはNo1の方の意見に賛成ですが、集計表は作成しない前提で回答します。
「日計欄に収入、支出をそれぞれ入力するだけで、月計と累計に自動計算されるような方法」
は、実現可能ですが、あまり賛成できません。
1案:(自動実行の場合)
例では、1月2日の日計欄の支出に80と入力時
月計に130、塁計に130が表示されることを期待していますが、
もし、80と打ち込んで、月計に130、塁計に130が表示されたのち、
実は80は誤りで90が正しかった気が付いたときは、手遅れになります。
そこで...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qエクセルで日計累計

いつも、お世話になっております。

下記の様な表を作りたくて、色々と調べてはみたのですが、
わからないので、教えてください。

日計を↓の様に入力すると、

        りんご みかん すいか
     阿部  1   3    0
     山田  2   0    5
     加藤  0   7    2

どんどん累計されていく表を作りたいのです。
宜しくお願い致します。

Aベストアンサー

串刺し計算の事を言っておられるなら、「EXCEL 統合」で検索してみてください。

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qエクセルで前シートを参照して累計金額をだしたい。

エクセルで現場ごとに日報を作成しています。
(現場単位で、2~3ヶ月で1つの日報ファイルを作成しています)

1日1シートで作成し、シート名は日付(例:1月2日なら「0102」)でつけています。
毎日かかった経費と、その日までの合計(累計)の経費をだしたいと思っています。

その日の金額(A1)に、前日までの累計の金額(一つ前のシートのA2)を足して、その日までにかかった経費を(A2)に表示させたいと思い

色々と調べて以下の方法にたどり着きました。
名前の定義に「前シート」として、参照範囲に
「=MID(INDEX(GET.WORKBOOK(1)&T(NOW()),GET.DOCUMENT(87)-1),FIND("]",INDEX(GET.WORKBOOK(1)&T(NOW()),GET.DOCUMENT(87)-1))+1,31)」を入力し
累計を求めたいセル(A2)には
「=INDIRECT("'"&前シート&"'!A2")+A1」と関数を入れました。

これで一応でるようにはなったのですが、エクセルを閉じて、再び開くと
A2には「#NAME?」と表示されてしまい
また名前の定義を設定し直さなければなりません。

私一人が使うわけではなく年配の上司も見るので、できれば開くたび、数字が表示されるようにしたいのですがどうすればよいでしょうか?

ちなみに、他の名前の定義を使用している関数については、再び開いても数字が表じされています。


あともうひとつ・・・名前の定義以外で同じように累計を計算する関数はありますか?

よろしくお願いします。

エクセルで現場ごとに日報を作成しています。
(現場単位で、2~3ヶ月で1つの日報ファイルを作成しています)

1日1シートで作成し、シート名は日付(例:1月2日なら「0102」)でつけています。
毎日かかった経費と、その日までの合計(累計)の経費をだしたいと思っています。

その日の金額(A1)に、前日までの累計の金額(一つ前のシートのA2)を足して、その日までにかかった経費を(A2)に表示させたいと思い

色々と調べて以下の方法にたどり着きました。
名前の定義に「前シート」として、参照範囲に
「=MID(I...続きを読む

Aベストアンサー

No2です。
>簡単に、関数で一つ前のシートのセルを参照する方法が知りたいです。
ひとつ前のシートを参照する関数はありませんが Cell関数を紹介します。
仮に
現在のシート名が 1113 となっていて 前のシート名が 1112 となっているとします。
1113のA1セルに =CELL("filename",A1) と入れてみてください。
そのファイルのパス、ブック名、シート名 が表示されます。
A2セルに =MID(A1,FIND("]",A1)+1,4) と入れるとシート名(この例では 1113)が表示されます。
A3セルに =TEXT(DATE(2010,LEFT(A2,2),RIGHT(A2,2))-1,"mmdd") とすれば前の日付のシート名
A4セルに =INDIRECT(A3 & "!A1") 前の日付のシートのA1の値です。
もちろん一つのセルに記述することもできますが、かなり長くなると思います。

この方法で前の日付のシートを参照することが出来ますが
もし休日などで前の日付のシート名がなければエラーです。

これを応用しますが
別途、シート名の一覧表を準備しておけば如何でしょうか?
シート名一覧シート 
 A
1111
1112
1115
1116
・・・・
と準備して
A5セルに =INDEX(シート名一覧!A1:A100,MATCH(A2*1,シート名一覧!A2:A101))
として 1113よりひとつ上の行の値を検索して Indirect関数で使います。

ところで、新しい日付のシートは毎日ひとつづつ作成されているのでしょうか?
例えば
VBAを使って ボタンを押せば新しいシートが作成される。
作成されたシートに所定の日報のフォーマットを貼り付ける。
作成されたシートの名前を変更する。
累積を出したいセルに 前日までの累計を計算させて入れる。

上記のボタンを作成しては如何でしょうか?
シートを準備する作業から簡素化できますし、ついでに累計が自動で入るだけのことです。

私としては、先に紹介したように
データのシート
日付  天気 機械名 コメント 労務費 機械費
11/12  晴れ  A   ごめん  100  200
・・・・
とデータが入るような仕組みと検索して表示させる仕組みを考えて方が全く便利だと思います。
例えば
入力シート
 日付  11/12
 天気  晴れ
 機械名  A
 コメント ごめん
 労務費  100
・・・と入れておいて ボタンを押せば データのシートに追加される

表示のシート
入力シート
 日付  11/12
 天気
 機械名
 コメント
 労務費
と日付を入れると 必要な情報が表示される Vlookup関数やSumif関数を配置します。
ほかにも金額などは 月集計ができたりグラフにできたり便利になるはずです。

No2です。
>簡単に、関数で一つ前のシートのセルを参照する方法が知りたいです。
ひとつ前のシートを参照する関数はありませんが Cell関数を紹介します。
仮に
現在のシート名が 1113 となっていて 前のシート名が 1112 となっているとします。
1113のA1セルに =CELL("filename",A1) と入れてみてください。
そのファイルのパス、ブック名、シート名 が表示されます。
A2セルに =MID(A1,FIND("]",A1)+1,4) と入れるとシート名(この例では 1113)が表示されます。
A3セルに =TEXT(DATE(2010,LEFT(A2,2)...続きを読む

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Qexcelで日計表と月計表を作りたい

excelで日計表と月計表を作りました。
同じファイル内に1枚が月計表、残り31枚が日計表です。
日計表に値を入力すると月計表に反映するようにしたのですが、一部が上手くいきません。
皆さんのお知恵をお貸し下さい…。

具体的に言うと、

●結果がAだったものの件数
●結果がBだったものの件数
●その合計

以上を日計表に記入し、
月計表で集計したいのです。

ポイントは、
○月計表で、未来の日付の欄は空欄にし、
月末に出す平均値に反映させたくない
(つまり、今日が20日だとすると20日までの
平均値が行末に出るようにしたい)
ということです。

文章で説明すると分かりにくいですが、宜しくお願いします。

Aベストアンサー

1日から31日のシートのA1に平均を出したい数値が入っていると仮定した場合

=sum('1日:31日'!A1)/COUNT('1日:31日'!A1)

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

QExcel シートを自動作成、セル値をシート名に 

エクセルのマクロの自動記録で作業の効率化を図りたいのですがうまく出来ません、ご教示いただけ無いでしょうか。
(VBAは初心者です。本とネットを検索しながら作成していたのですが、
急きょファイルを作成しなければいけない状況になりました。)

■Excel2010

■ブック詳細
・Sheet"企業一覧" → 行ごとに企業名、シート名が記載された表があります。
  A列 企業名
  B列 シート名

・Sheet"マスタ" → 見積書のフォーマットがあります。
  A4 企業名 


■希望作業
シート「企業一覧」の企業ごとにボタンを作り、ボタンを押すと

1."マスタ(Sheet)"のコピーが作成され、
2.コピーされたシートのA4セルに"企業一覧(Sheet)"A列の企業名が記載され、
3.コピーされたシート名に"企業一覧(Sheet)"のB列のシート名が記載され、
4."企業一覧(Sheet)"のB列のシート名に新しいシートへのハイパーリンクを付け
5."企業一覧(Sheet)"に戻る

※下記作業ができません。
・コピーされた新しいシートに、シート名が付けられない。
・"企業一覧(Sheet)"のシート名にコピーされた新しいシートへのハイパーリンクを付けられない。

※シートのコピーは可能なら"企業一覧(Sheet)"の企業名表記順に作成したいと思っています。

※各企業行ごとにボタンを作るのは面倒なのですが、
企業名/シート名の表記がよく変更になるため、入力と同時にマクロが実行されるのではなく、
何かワンクッションを置きたいと思っています。


※シートのコピー作成、企業名の記載までは出来たのですが、
その他の作業ができません。よろしくお願いいたします。

---------------------------
Sub Sheet作成()
'
' Sheet作成 Macro
'
'
Sheets("マスタ").Select
Sheets("マスタ").Copy After:=Sheets("マスタ")
Range("A4:B4").Select
ActiveCell.FormulaR1C1 = "=企業一覧!R8C1"
Range("C4").Select

Exit Sub

End Sub

--------------------------

エクセルのマクロの自動記録で作業の効率化を図りたいのですがうまく出来ません、ご教示いただけ無いでしょうか。
(VBAは初心者です。本とネットを検索しながら作成していたのですが、
急きょファイルを作成しなければいけない状況になりました。)

■Excel2010

■ブック詳細
・Sheet"企業一覧" → 行ごとに企業名、シート名が記載された表があります。
  A列 企業名
  B列 シート名

・Sheet"マスタ" → 見積書のフォーマットがあります。
  A4 企業名 


■希望作業
シート「企業一覧」の企業ごとに...続きを読む

Aベストアンサー

変更点:
1.マクロを取り付けるボタンは「1つだけ」用意する事として,「現在選ばれているセル」のシートを作成することにします
  (複数セル選択可。不連続セルの選択可。マクロボタンは記号一覧シートに作成すること。)
2.選択されたデータの該当するシートが「既に作成済み」である場合は,既存の該当企業シートを「削除」し,新たに作成することにします
3.新しいシートの「どこへの」ハイパーリンクを付けたいのか不明なのでA4にする
4.リストB列の記載が「不適切なシート名」だった場合は無視して続行する

sub macro1()
 dim h as range
 application.screenupdating = false
 on error resume next

 for each h in application.intersect(selection.entirerow, range("A:A"))
 if h <> "" then

’既存シートを削除する
 application.displayalerts = false
 worksheets(h.offset(0, 1).value).delete
 application.displayalerts = true

’シートを作成する
 worksheets("マスタ").copy after:=worksheets(worksheets.count)
 activesheet.name = h.offset(0, 1).value
 range("A4").formula = "=企業一覧!" & h.address
 h.offset(0, 1).hyperlinks.delete
 worksheets("企業一覧").hyperlinks.add anchor:=h.offset(0, 1), address:="", subaddress:= h.offset(0, 1) & "!A4"

 end if
 next

’シートを並べ替える
 worksheets("企業一覧").select
 for each h in range("B2:B" & range("B65536").end(xlup).row)
 worksheets(h.value).move after:=worksheets(worksheets.count)
 next
 worksheets("企業一覧").select
 application.screenupdating = true
end sub

変更点:
1.マクロを取り付けるボタンは「1つだけ」用意する事として,「現在選ばれているセル」のシートを作成することにします
  (複数セル選択可。不連続セルの選択可。マクロボタンは記号一覧シートに作成すること。)
2.選択されたデータの該当するシートが「既に作成済み」である場合は,既存の該当企業シートを「削除」し,新たに作成することにします
3.新しいシートの「どこへの」ハイパーリンクを付けたいのか不明なのでA4にする
4.リストB列の記載が「不適切なシート名」だった場合は無...続きを読む


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

人気Q&Aランキング

おすすめ情報