タイトルの通りです。

http://oshiete1.goo.ne.jp/qa4132116.html

検索したらこの過去質問があったのですが、コピーしたいセルが複数あり、さらにファイルが大量にあるので、この方法ですと手間がかかってしまいます。

せめてシート単位でコピーしたいのですが、何か方法はないでしょうか。

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

A 回答 (4件)

下記操作を試してください。



コピー元セル範囲を選択
編集メニューの置換で
=

#
に「すべて置換」
Ctrl+C でコピー
貼り付け先に移動し、Ctrl+V で貼り付け
編集メニューの置換で
#

=
に「すべて置換」

これで良ければ「マクロの記録」をし、得られたコードを編集して汎用性のあるマクロにする。
    • good
    • 25
この回答へのお礼

なるほど、「=」を置き換えるのがポイントですね。
どうもありがとうございました。

お礼日時:2009/07/13 11:32

こんにちは。



数式自体をそのまま写したいのでしたら、
最初に、メモ帳(Notepad.Exe) を出しておきます。
該当するワークシートで、Ctrl + Shift + @ で、数式を表示させます。

次に、範囲を選択して、Ctrl + C で、コピーし、メモ帳に貼り付けて、必要なシートに貼り付ければ出来ます。
数式表示が必要なくなったら、再び、Ctrl + Shift + @ で閉じることが出来ます。

私なら、このようにします。

メモ帳などが面倒だというなら、マクロになります。
    • good
    • 22
この回答へのお礼

ご回答ありがとうございます。
色々とやり方があるのですね、参考になりました。

お礼日時:2009/07/13 16:21

>せめてシート単位でコピーしたいのですが、何か方法はないでしょうか。



普通にタブのところで右クリックしてショートカットメニューを出し、
[移動またはコピー]でシート単位のコピーならできますが・・・・

これではだめなのでしょうか?
    • good
    • 5
この回答へのお礼

ご回答ありがとうございます。
はい、ご回答の意味でのシート単位ではだめなのです。
あくまで任意のシートの特定のセル(複数)が対象です。。。
質問文がわかりづらくて申し訳ありません。

お礼日時:2009/07/13 11:07

エクセルファイル自体をコピーして不必要なシートを削除する。

    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。
ですがコピー先には既に別のデータが入っているので、この方法はちょっと無理です。。。

お礼日時:2009/07/13 10:41

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

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

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

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

Qhttp://oshiete.goo.ne.jp/qa/5843834

http://oshiete.goo.ne.jp/qa/5843834.htmlと同じアクセスの質問です。
現在、開始日や所属コードを入力すると終了日に自動的に”9999/12/31”と入力されるようになっています。その為、社員の勤務先の履歴を更新する時に、前勤務先の終了日を入力する前に現勤務先の所属コードや開始日を入力してしまうと、終了日が”9999/12/31”となります。

一つ目の変更したい点は、上記の後に前勤務先の終了日を入力しても、現勤務先の開始日に反映するようにしたいです。

二つ目は、現勤務先の開始日を入力したら、前勤務先の終了日がその一日前になるようにしたいです。

三つ目は、レコードを削除する時に、終了日から反映させた開始日だけが削除できずに残ってしまうのでそこを変更したいです。

情報不足かと思いますが、宜しくお願いします!!

Aベストアンサー

ご提示の質問の回答者(No.2)です。

上記の際は「次のレコード」とのことでしたが、今回のご質問は「現在のレコード」に
対しての操作、ということのように読めますので、以下、その前提で回答します。
(・・・前勤務先と現勤務先の情報が別レコード、ということではないことを祈ります(汗))

現レコードへの操作や入力済みの値の上書きとなると、既定値では対応できません
ので、値を直接代入してやることになります。
※「三つ目」の現象は、恐らく前回の回答を元に設定された『既定値』が表示された
  ままになっていることを指していると思いますので、対応手段を『既定値(Default
  Value)』から『値(Value)』に変更することで、自然に解消されます。
 (念のため、開始日/終了日のプロパティシートの『データ』タブで既定値の設定を
  確認し、値が残っているようなら削除してください)


「一つ目」と「二つ目」のご要望を単純に実現するなら、コードは以下の通りです:

'「前勤務先終了日」テキストボックスの更新後イベント
Private Sub 前勤務先終了日_AfterUpdate()

  '値を削除した場合は、何もしない  
  If IsNull(前勤務先終了日) Then Exit Sub

  'DateAdd関数を使用して、終了日の1日後を開始日に設定
  '(上の説明にあわせるなら「~開始日.Value」ですが、「.Value」は省略可なので略)
  現勤務先開始日 = DateAdd("d", 1, 前勤務先終了日)

End Sub

'「現勤務先開始日」テキストボックスの更新後イベント
Private Sub 現勤務先開始日_AfterUpdate

  If IsNull(現勤務先開始日) Then Exit Sub

  前勤務先終了日 = DateAdd("d", -1, 現勤務先開始日)

End Sub


但し、これだと、もしも「前勤務先終了日」と「現勤務先開始日」の間に空白期間のある
人がいた場合、入力のしようがなくなってしまいます。

「空白期間は前勤務先の勤務期間に含める」といった運用ルールを置かれているか、
空白期間がありえない前提なら問題ありませんが、そうでないなら、以下のように
「代入先が入力済みの場合は、上書きしてよいか確認する」といった方法もあります。

「前勤務先終了日の入力時は確認なしで上書き、現勤務先開始日の入力時は必要に
に応じて確認」でよいなら、「現勤務先開始日」のコードを以下のものに差し替えます:

Private Sub 現勤務先開始日_AfterUpdate
On Error Goto エラー処理

  '定数の宣言
  Const strMsg As String = "前勤務先終了日は入力済みです。" _
    & vbCrLf & "入力した開始日の前日で上書きしますか?"

  If IsNull(現勤務先開始日) Then
    '現勤務先開始日が空白の場合は、何もしない
    Goto 終了処理
  ElseIf IsNull(前勤務先終了日) Then
    '前勤務先終了日が空白の場合は、そのまま処理を継続
  ElseIf MsgBox(strMsg, vbYesNo, "確認") = vbNo Then
    '終了日の上書き確認で「いいえ」選択時は何もしない
    '(「はい」選択時は、そのまま処理を継続)
    Goto 終了処理
  End If

  '上で「終了処理」に飛ばされていなければ、終了日への代入を実行
  前勤務先終了日 = DateAdd("d", -1, 現勤務先開始日)

終了処理:
  Exit Sub

エラー処理:
  MsgBox Err.Number & ":" & Err.Description, , Me.Name & " 現勤務先開始日"
  Resume 終了処理

End Sub


・・・以上です。

ご提示の質問の回答者(No.2)です。

上記の際は「次のレコード」とのことでしたが、今回のご質問は「現在のレコード」に
対しての操作、ということのように読めますので、以下、その前提で回答します。
(・・・前勤務先と現勤務先の情報が別レコード、ということではないことを祈ります(汗))

現レコードへの操作や入力済みの値の上書きとなると、既定値では対応できません
ので、値を直接代入してやることになります。
※「三つ目」の現象は、恐らく前回の回答を元に設定された『既定値』が表示された
  ままにな...続きを読む

Qhttp://okwave.jp/qa/q5634033.htmlにて

http://oshiete.goo.ne.jp/qa/5634033.htmlにて質問させていただきました。その節はありがとうございました。

実はこれは私の質問の仕方が悪かったのですが、ちょっと予想と違うものであったことに気づきました。
本来は以下のようにしたいのですが、ご教示願いたいと思います。

上記URLでのご回答ですと、常に最終の「締」列-J2になってしまいます。
そうではなく、図のように最終の「締」列-最終の一つ前の「締」列が計算されるようにし、常に「締」列には数値が表示されている様にしたいのですが、いかがでしょうか?

ご不明な点や情報不足は補足致しますので、ご指摘下さい。
よろしくお願い致します。

Aベストアンサー

No.3です。

> 常に「締」列には数値が表示されている様にしたい

と、あったので、No.3ではL2にも数値を表示しましたが、質問画像の様にL2を空白にしたいのでしたら、L3に↓を入れて下にコピーしてください。。
=IF(K3="締",J3-SUM(L$2:L2)-J$2,"")

Q「Office.comでさらに探す」が使えない

Excel2010を使っています。
クリップアートを挿入する時に、「Office.comでさらに探す」をクリックすると管理者に聞くようにと出てIEがたちあがりません。 

Word2010ではスムーズにできます。
なぜExcelではアクセスできないのでしょうか。

教えてください。
宜しくお願い致します。

Aベストアンサー

(1)IEのインターネット一時ファイルを削除
IE起動「ツール」「インターネットオプション」「全般」「インターネット一時ファイル」「ファイルの削除」「OK」「OK」再起動
(2)Office の修復
Office の CD-ROM を準備し、オンラインクリップを検索していたアプリケーションの「ヘルプ」「アプリケーションの自動修復」自動修復画面「開始」修復実行
(3)ファイアーウォールの遮断またはセキュリティソフトのブロックがないか確認
・Windowsファイアーウォール以外の他社製のファイアウォールソフトやセキュリティ対策ソフトのパーソナルファイアーウォール機能によってクリップにアクセスできないことが原因で発生した場合、ファイアウォール「設定」「有効」「例外ルール」遮断している項目を「追加・変更・登録」で「許可」(または一時的に「無効」)
・使用している Web アクセラレーション製品の設定でネットへのアクセスが妨げられている可能性
・web サイトへのアクセスが許可されるようネットワーク管理者に変更依頼する。

>Excel2010

Office2003を準用

参考URL:http://support.microsoft.com/kb/894936/ja

(1)IEのインターネット一時ファイルを削除
IE起動「ツール」「インターネットオプション」「全般」「インターネット一時ファイル」「ファイルの削除」「OK」「OK」再起動
(2)Office の修復
Office の CD-ROM を準備し、オンラインクリップを検索していたアプリケーションの「ヘルプ」「アプリケーションの自動修復」自動修復画面「開始」修復実行
(3)ファイアーウォールの遮断またはセキュリティソフトのブロックがないか確認
・Windowsファイアーウォール以外の他社製のファイアウォールソフトやセキュリテ...続きを読む

Qエクセル アンド関数の繰り返し手間を省きたい

エクセル上で、

セル A1 A2 A3 A4 A5 と上から下まで1万行ほど並んでいるデータがあるのです、それらを結合させようとアンド関数で、=A1&A2&A3と打ち込んでいたのですが、1万レコードほどあるので、ちょっと無理っぽいんです。

複数のセルを、一発でワンセルに結合させる方法はあるのでしょうか?

どなたか教えてください。

Aベストアンサー

参考程度に

Sub test1()
Dim a, b
a = Range("a1").CurrentRegion
a = Application.Transpose(a)
b = Join(Application.Index(a, 1, 0), "")
Range("b1").Value = b
End Sub

Sub test2()
Dim a, b, i
a = Range("a1").CurrentRegion
b = ""
For i = 1 To UBound(a)
b = b & a(i, 1)
Next i
Range("b1").Value = b
End Sub

excelのバージョンによっては、test1はエラーが出ます
1万行ならexcel2000は確実にエラーが出ます(仕様)
その場合はtest2を試してね

Qエクセルの勤務表で給与計算したいのですが....

勤務表の日付のセルに勤務シフトA、B、C....と入力します。この時、Aシフトは5時間勤務、Bは6時間勤務、Cは7時間勤務だとします。一ヶ月にAシフトが5日、Bシフトが4回、Cシフトが7回なら、合計の時間のセルに98(5X5+6X4+7X7)というように計算される方法を教えてください。

Aベストアンサー

こんにちは!
A・B・Cと入力する列はA列とすると
表示したいセルに

=SUM(COUNTIF(A:A,"A")*5,COUNTIF(A:A,"B")*6,COUNTIF(A:A,"C")*7)

としてみてください。

※ A列に合計セルがある場合は循環参照になりますので、セル範囲を指定して
=SUM(COUNTIF(A1:A32,"A")*5,COUNTIF(A1:A32,"B")*6,COUNTIF(A1:A32,"C")*7)
のように具体的に実際のセル範囲をしていしてください。

別案・・・必ず、A・B・Cのどれかが入るとして
1行目が項目行で2行目以降みデータを入力する場合(1~32行目)の場合
=COUNTA(A2:A32)*5+COUNTIF(A2:A32,"B")+COUNTIF(A2:A32,"C")*2
でもOKだと思います。m(_ _)m


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

このカテゴリの人気Q&Aランキング

おすすめ情報