Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
保護されたセル部分を抜かして、次の転記可能セルに転記させたい
投稿日時: 20/06/30 11:19:07
投稿者: 案山子

いつもお世話になっております。
別シートの指定された列に値を転記したいのです、転記先のセルが表で1ページごとに区切っていて、
名称などのタイトル部分があります。その部分が保護されていています。
その部分を飛ばして次のセルから記述させるにはどの様に設定を行えばよろしいのでしょうか?
以下のようなコード組んでみています。
 

Sub Sample()
  Dim ws1 As Worksheet
  Dim ws2 As Worksheet
  Set ws1 = Worksheets("商品一覧")
  Set ws2 = Worksheets("見積書")
  '先頭のアルファベットを変更して挿入したい列を設定してください。
  ws2.Range("A69:A1186").Value = ws1.Range("B2:B1117").Value
End Sub

ご指導のほどよろしくお願いします。[/code]

回答
投稿日時: 20/06/30 12:48:17
投稿者: WinArrow
投稿者のウェブサイトに移動

> ws2.Range("A69:A1186").Value = ws1.Range("B2:B1117").Value
このような手抜きを考えているのでしょうか?
 
ひとつづセルをチェックして
複写してもよいせるなのか/複写できないセルなのか
判断することを考えたらいかがですか?
 
ところで
 
複写元セルの個数と複写先のセルの個数が同じにはならないはずだが・・・・?

投稿日時: 20/06/30 13:35:34
投稿者: 案山子

ご回答ありがとうございます。
 

WinArrow さんの引用:
> ws2.Range("A69:A1186").Value = ws1.Range("B2:B1117").Value
このような手抜きを考えているのでしょうか?

 
手抜きとはどの様な意味でしょうか?
WinArrow さんの引用:
>
複写元セルの個数と複写先のセルの個数が同じにはならないはずだが・・・・?

数え間違いえているかもしれませんが、取り敢えず同じと仮定していただけたら。
 
WinArrow さんの引用:
>
ひとつづセルをチェックして
複写してもよいせるなのか/複写できないセルなのか
判断することを考えたらいかがですか?

詳しくは言えませんが、仕事で見積書を作成するのに、お客様のシートから項目を自社形式に転記するのに、ページで仕切られていて、なおかつ途中に項目行があるので、その部分は入力をされないように保護しています。

回答
投稿日時: 20/06/30 16:02:21
投稿者: WinArrow
投稿者のウェブサイトに移動

複写元セルがn件あったら、
複写先セルは、n件+見出し行分になるはずです。
見出し行の件数をあらかじめ取得することができれば
掲示のようなコードが成り立つかもしれません。
見出し行をあらかじめ取得できたとしても、
範囲指定での複写はできませんよね?
 
以下、考え方です。
先行 = 先範囲の開始行
For 元行 = 元範囲の開始行 To 元範囲の最終行
    If 先範囲(先行)が見出し行 THen
       先行= 先行 + 1
    End If
    先範囲(先行) = 元範囲(元行)
    先行 = 先行 + 1
Next
 
のようなループ処理がよいと思います。
 
   
 
   
 

投稿日時: 20/06/30 17:32:33
投稿者: 案山子

ご回答ありがとうございます。
提案された内容で検討してみます。
ありがとうございました。

回答
投稿日時: 20/06/30 21:03:31
投稿者: WinArrow
投稿者のウェブサイトに移動

余計な心配かもしれませんが、
 
途中のセルに、転記できないセルがある・・・
という設計は、問題があるように思います。
 
例えば、
前回、この処理を実行したときの
データ件数より、今回のデータ件数が少ない場合、
前回のデータが残っていう・・・ということはないでしょうか?
また、前回のデータ件数より、今回のデータ件数が多くて
見出し行が足りない‥‥ということはないのでしょうか?
 
 
見出し行で改ページをしているとしたら、
ページ設定の行見出しを利用すると、
表中に見出し行を用意しなくても
各々のページの先頭に自動的に見出しが印刷されます。
そうすると、
データの複写もセル範囲で、一括複写可能となります。
 
 

投稿日時: 20/07/01 10:05:09
投稿者: 案山子

ご返信ありがとうございます。
昔からの社内レイアウトに当てはめることに無理があるのですよね。
根本的解決を考えてみます。
ありがとうございました。