Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1082 / 13645 ツリー ←次へ | 前へ→

【76410】値のコピペ こずえ 14/11/27(木) 13:27 質問[未読]
【76415】Re:値のコピペ kanabun 14/11/27(木) 22:50 発言[未読]
【76421】Re:値のコピペ こずえ 14/11/28(金) 10:38 質問[未読]
【76422】Re:値のコピペ kanabun 14/11/28(金) 10:45 発言[未読]
【76430】Re:値のコピペ こずえ 14/11/28(金) 15:30 お礼[未読]

【76410】値のコピペ
質問  こずえ  - 14/11/27(木) 13:27 -

引用なし
パスワード
   Sheet[メニュー]C3:F3(セルの結合)に住所を入力されるようになっています。
ボタンを押したら、【Sheets("Sheet2")の8箇所】に値の貼り付け。

Sheet[メニュー]C4:F4(セルの結合)に社名を入力されるようになっています。
ボタンを押したら、【Sheets"メニュー"の1箇所に値の貼り付け】、【Sheets("Sheet2")の8箇所に値の貼り付け】を
するモジュールです。もっと短く出来たらと思ってこの掲示板に書き込みました。
宜しくお願い致します。


Sub CA()

'住所コピー
Sheets("メニュー").Range("C3").Copy 'メニュー,C3:F3(セルの結合)コピー
Sheets("Sheet2").Range("C10").PasteSpecial Paste:=xlPasteValues
'Sheet2,C10:H10(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C61").PasteSpecial Paste:=xlPasteValues
'Sheet2,C61:H61(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C112").PasteSpecial Paste:=xlPasteValues
'Sheet2,C112:H112(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C163").PasteSpecial Paste:=xlPasteValues
'Sheet2,C163:H163(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C216").PasteSpecial Paste:=xlPasteValues
'Sheet2,C216:H216(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C245").PasteSpecial Paste:=xlPasteValues
'Sheet2,C245:H245(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C274").PasteSpecial Paste:=xlPasteValues
'Sheet2,C274:H163(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C303").PasteSpecial Paste:=xlPasteValues
'Sheet2,C303:H303(セルの結合)値の貼り付け
Sheets("メニュー").Range("A1").Select

'社名
Sheets("メニュー").Range("C4").Copy 'メニュー,C4:F4(セルの結合)コピー
Sheets("メニュー").Range("B7").PasteSpecial Paste:=xlPasteValues 'メニュー,B7:J7(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C11").PasteSpecial Paste:=xlPasteValues
'Sheet2,C11:H11(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C62").PasteSpecial Paste:=xlPasteValues
'Sheet2,C62:H62(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C113").PasteSpecial Paste:=xlPasteValues
'Sheet2,C113:H113(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C164").PasteSpecial Paste:=xlPasteValues
'Sheet2,C164:H164(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C217").PasteSpecial Paste:=xlPasteValues
'Sheet2,C217:H217(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C246").PasteSpecial Paste:=xlPasteValues
'Sheet2,C246:H246(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C275").PasteSpecial Paste:=xlPasteValues
'Sheet2,C275:H275(セルの結合)値の貼り付け
Sheets("Sheet2").Range("C304").PasteSpecial Paste:=xlPasteValues
'Sheet2,C304:H304(セルの結合)値の貼り付け

End Sub

【76415】Re:値のコピペ
発言  kanabun  - 14/11/27(木) 22:50 -

引用なし
パスワード
   ▼こずえ さん:

「値をコピー」するのに .Valueプロパティを利用する方法です。

Sub try1b()
 Dim i As Long
 Dim v As Variant
 
 With Sheets("メニュー")
   .Range("B7").Value = .Range("C4").Value
   v = .Range("C3:C4").Value
 End With
 With Sheets("Sheet2")
   For i = 10 To 163 Step 51
     .Cells(i, "C").Resize(2).Value = v
   Next
   For i = 216 To 303 Step 29
     .Cells(i, "C").Resize(2).Value = v
   Next
 End With
   
End Sub

【76421】Re:値のコピペ
質問  こずえ  - 14/11/28(金) 10:38 -

引用なし
パスワード
   kanabunさん
モジュールは正常に動きました。
有難うございます。
Valueプロパティ一覧はありますか?(例え:何をする時は???とか)

ちなみに1、("B7")と("C4")かどちらかが入力がされてないと
     【住所または社名が入力されてません】とメッセージを出したいんです
ちなみに2、 ("B7")と("C4")かどちらも入力がされてた場合
     【住所、社名はセットされました。】とメッセージを出したいんです    
      何プロパティし調べればいいのですか?
>
>「値をコピー」するのに .Valueプロパティを利用する方法です。
>
>Sub try1b()
> Dim i As Long
> Dim v As Variant
> 
> With Sheets("メニュー")
>   .Range("B7").Value = .Range("C4").Value
>   v = .Range("C3:C4").Value
> End With
> With Sheets("Sheet2")
>   For i = 10 To 163 Step 51
>     .Cells(i, "C").Resize(2).Value = v
>   Next
>   For i = 216 To 303 Step 29
>     .Cells(i, "C").Resize(2).Value = v
>   Next
> End With
>   
>End Sub

【76422】Re:値のコピペ
発言  kanabun  - 14/11/28(金) 10:45 -

引用なし
パスワード
   ▼こずえ さん:

>Valueプロパティ一覧はありますか?(例え:何をする時は???とか)

質問が判りません... が、あてずっぽで...

Rangeオブジェクトの Valueプロパティは セル(範囲)に入っている値を取得または
セットするプロパティです。
他には .Value2 プロパティというのがあります。.Valueプロパティとほとんどの
ばあい同じですが、セルに日付が入っているとき、.Valueプロパティは 日付を返し
ますが、.Value2プロパティは 数値(シリアル値)を返します。
また、Rangeオブジェクトには .Textプロパティもあります。これはセルに表示されて
いるテキストを返すプロパティで、
たとえば、
セルに 2014/11/28 という日付けがセットされているときには、
 .Valueプロパティ は 2014/11/28 (数式バーに表示されている値)
 .Value2プロパティ は 41971   (シリアル値)
 .Textプロパティ は 「11月28日」 (セルの表示形式で変化)
が返ります。
セル内の数値が桁あふれで ###### のようになっているときは .Textプロパティは
表示されている通りの文字列 "######" を返します。


>ちなみに、("B7")と("C4")かどちらかが入力がされてないと
>【住所または社名が入力されてません】とメッセージを出したいんですが
>何プロパティし調べればいいのですか?
セルが未入力かどうかは IsEmpty()関数で調べられます。
ただし、[B7]と[C4]と、対象セルが複数なので、少し工夫して

  If WorksheetFunction.CountA(Range("B7,C4")) < 2 Then
    MsgBox "【住所または社名が入力されてません】"
  End If

のように一括で調べてもいいです。

【76430】Re:値のコピペ
お礼  こずえ  - 14/11/28(金) 15:30 -

引用なし
パスワード
   kanabun さん

説明まで添えて頂き有難うございます。
勉強させて頂きます。

1082 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free