プロが教えるわが家の防犯対策術!

excel2010使用 空白セルにのみ貼り付けたいのですが、

①の空白セルにのみ、②のデータを
貼りつけたいのですが、一括で簡単に出来る方法はあるでしょうか?
excel初心者の為、マクロとかは理解しておりません。
よろしくお願いいたします。
(逆に②を①に貼る、「形式を選択して貼り付け→すべて、演算しない、空白セルを無視する」
は、望む方法ではありません。)

「excel2010 空白セルにのみ貼り付」の質問画像

質問者からの補足コメント

  • 大変申し訳ありません!
    >(逆に②を①に貼る~…
    は「逆に①を②に貼る~…」の間違いです!

    用途としては、会社で「親」が持っているシート(原紙)の穴を「子」が穴埋めする業務です。
    「子」はそれぞれ原紙をコピーして手元で作業、穴埋めが終わったら原紙に正解を書き込む…感じです。
    シートに保護などがかかっていないので、元々埋まっている正しい答えをコピペして消したくないのです。

      補足日時:2016/11/07 17:45

A 回答 (6件)

添付図参照


1.式 =IF(1/(C2=""),C7) を入力したセル C11 を右方および
 ̄ ̄下方にオートフィル
2.範囲C11:G13 を選択して、Ctrl+G を実行後、[セル選択]
 ̄ ̄をツン
3.“数式”に目玉入れて、かつ、“エラー値”以外のチェックを
 ̄ ̄外して、[OK]をツン
6.Deleteキーをパシーッ
7.範囲C11:G13 を選択
8.Ctrl+C をパシーッ
9.セル C2 を選択して、マウスの右クリックから[形式を選択
 ̄ ̄して貼り付け]メニューを表示
10.“値”に目玉を、“空白セルを無視する”にチェックを入れて、
 ̄ ̄Enterキーを「エイヤッ!」と叩きつけ

「空白セルを無視する」を利用しないテはアンメーに!
「excel2010 空白セルにのみ貼り付」の回答画像6
    • good
    • 3
この回答へのお礼

回答ありがとうございました!
パシーッ!っとやりました!

お礼日時:2016/11/08 20:01

こんにちは。



①で、「空白」が目に見えない「空白値」で中身が入っているとしたら、くだんの[形式を選択して貼り付け]は成り立たなくなるはずですね。

たぶん、一連の動作だけで、情報が不足しているので、話が通じていないのだろうと思います。また、それは、今、私が思っている内容とも違う可能性はあるということです。

一般的にいう初心者の方に、その用語の詳しい定義などを求めてもキリがないとは思います。先日も、[削除]と[消去]の用語の違いでも揉めていましたが、それは無理な話です。英語のカテゴリでさえ、サイズという単語で、私が間違いなければ、混乱していたようですから。他にも、Null(ナルと読む)とか、Emptyとか、プログラム上の独特の値を、表計算上で使うと、とてもややこしいのです。
ちなみに、Null は、Nilと同義語で、一般的には「0」のことですね。

さて、そのためにマクロという言葉が出てきたのでしょうか。
空白も、最近は、とっても厄介なものです。種類が何十種類もありますから。うまくいくとは限らないのです。

コピー&ペーストの動作のままで、マクロを成功させると考えるとかなり難しいです。やって出来なくはないのですが、ワークブックをお渡しする形でもしないと、それは、とても一般の方には、設定が難しくなります。

簡易的なマクロをご紹介しょうかと考えています。
まず、表の下部にシートタブがありますから、そのシートのタブを右クリックして[コードの表示]をクリックします。

使い方は、まず、②を最初に、③に貼り付けておきます。
次に、①の「あ」の位置で、範囲を選択して、右クリックします。
次に③の貼り付ける所の、左端上「あ/a」の位置に当たるところで、Ctrl + Alt + U で貼り付けします。

ショートカットはもう少し選べるかと思いましたが、外部のショートカットもコンフリクトするようで、例えば、Evernoteなども関わってくるようです。
[^(キャレット)]はCtrl キー , [+(プラス)]はシフト, %[パーセント]は、Altキーで、機能キーは、{}で囲みますから、{F1} などと書きます。

これは、なるべくコンパクトに収めることを考えて作りました。
'--------------

Dim Ar 'モジュール画面の最上に置く
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long, j As Long
Cancel = True
If Target.Count = 1 Then MsgBox "範囲を選択してください。", vbExclamation: Exit Sub
Ar = Target.Value
For i = 1 To UBound(Ar, 2)
 For j = 1 To UBound(Ar)
  Ar(j, i) = Trim(Ar(j, i))
  Ar(j, i) = WorksheetFunction.Clean(Ar(j, i))
 Next j
Next i
Beep
Call Setkey
End Sub
Sub PasteWoBlank()
Dim j As Long, i As Long
 If ActiveCell.CurrentRegion.Cells.Count > 2 Then
  If IsArray(Ar) Then
   j = UBound(Ar): i = UBound(Ar, 2)
   With ActiveCell
    For i = 1 To UBound(Ar, 2)
     For j = 1 To UBound(Ar)
      If Len(Ar(j, i)) > 0 Then
       ActiveCell.Cells(j, i) = Ar(j, i)
      End If
     Next j
    Next i
   End With
  Else
   MsgBox "データが確保されていません。", vbCritical
  End If
 End If
End Sub
Sub Setkey()
'ショートカット Ctrl+Alt ->u
 Application.OnKey "^%u", Me.Name & ".PasteWoBlank"
End Sub

'//

これはほんの一例で、マクロでなければ、関数で処理する方法もあるはずです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
こちらの質問が間違っていたため、ややこしいことになってしまい申し訳ございません。
教えて頂いたこと、今後の参考にさせていただきます。

お礼日時:2016/11/08 20:02

>②を①に貼る



これってどうやったらできると質問者さんは考えているんですかね??禁じ手にするくらいだからご本人はできるんでしょうね。
私にはさっぱりやり方が思いつきませんが。

1を2に貼り付ける際に空白を無視する、これ以外は私もいい方法はでませんね。
禁じ手にするからには理由くらい書いてもいいと思いますけど。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
こちらの質問が間違っていたため、ややこしいことになってしまい申し訳ございません。

お礼日時:2016/11/08 20:03

「空白を無視して②を①に貼る」が望む方法ではないとのことですが、その理由をお聞かせください。

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

回答ありがとうございました。
こちらの質問が間違っていたため、ややこしいことになってしまい申し訳ございません。

お礼日時:2016/11/08 20:03

これは、上①、中②、および下①の三つが同時に存在するのであれば可能です。



例)
A13=if(C2が空白でなければ、C2、C7)

しかし、C7に「あ」と入力されたならば、この関数が消えてしまい、
C2を空白にしても、C7が反映されません。
自己矛盾のような要求です。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
こちらの質問が間違っていたため、ややこしいことになってしまい申し訳ございません。

お礼日時:2016/11/08 20:04

>(逆に②を①に貼る、「形式を選択して貼り付け→すべて、演算しない、空白セルを無視する」


>は、望む方法ではありません。)
残念ながらそれが一番確実な方法。

ちょっと考えれば、1と2を丸ごとコピーして、そのコピーに対してやった結果を持ってこれば良い事は分かると思う。
手間ではあるだろうが、
「コピーに対して操作を行う」
ことを学ぶようにしよう。
    • good
    • 2
この回答へのお礼

回答ありがとうございました。
こちらの質問が間違っていたため、ややこしいことになってしまい申し訳ございません。
もっと勉強します!

お礼日時:2016/11/08 20:05

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

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


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