Excel (VBA)

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

 
(Windows 10全般 : Excel 2016)
Excelにて
投稿日時: 21/10/21 15:12:52
投稿者: moko2

Excelのマクロで
「A列に、何か入っていたら、B列の内容をC列にコピーして、B列の内容を空白にする。」
というマクロを作りたいです。
 
行は2000行超え、できれば10000行ほど対応できたらと思います。
 
なかなかVBAのコツがつかめず、お知恵を拝借お願いいたします。

回答
投稿日時: 21/10/21 16:12:52
投稿者: QooApp

Option Explicit

Sub IfNotNoneCopyCells()
    
    Dim startRows As Long
    Dim endRows As Long
    Dim i As Long
    
    startRows = 1'開始行
    endRows = 50'終了行
    
    For i = startRows To endRows'開始行〜終了行まで
        
        If (Cells(i, 1) <> "") Then
            Cells(i, 3) = Cells(i, 2)
            Cells(i, 2).Clear
        End If
    Next i
    
End Sub

 
要求されている仕様しか満たしてないので1つ1つを良く見てください。
あと、丸ごとソースコードの開発依頼と読み取れる内容は規約に抵触します。
可能であれば、「こんなコードを作ってみたが、こういうルールに基づく挙動をしなかった。どうすればいいか」というどこで躓いたかわかりやすく書いてもらえるといいお返事がもらえると思います。

投稿日時: 21/10/21 17:00:24
投稿者: moko2

ご返信ありがとうございます。
初めての投稿で、このような質問になってしまい申し訳ございません。
次回からは改善いたします。

回答
投稿日時: 21/10/21 20:47:55
投稿者: WinArrow
投稿者のウェブサイトに移動

今回のマクロは、1度だけ実行するのか繰返し実行するのかで
コードの記述が異なる部分があります。
例えば、
>EndRows = 50
1度限りですならば、行数をキメウチでも構いませんが、
繰返し実行するならば、データ量に対応して可変にする必要があります。
EndRowを10000とキメウチすると、空回りすることになります。
 
それから
>B列セルをC列セルに複写
は、既にC列セルに入っている内容を消してしまいます。
これは、1回限りの処理ということならばわかります。
 
もう一度、仕様をキチンと考えた方がよいと思います。
  
 

回答
投稿日時: 21/10/22 08:54:51
投稿者: もこな2

moko2 さんの引用:
なかなかVBAのコツがつかめず
既に指摘があるとおりこの掲示板では作成依頼はNGなので、とりあえずアイデアだけ。
 
たとえば
 (1) A列を1〜最終行まで順番に見ていき
 (2) A列が【ブランクセル】でなければ
 (3)その行のB列にセルを挿入して右にずらす
 ※(2)〜(3)を繰り返す
のように考えてみてはどうでしょうか?
 
繰り返す部分が分からないのであれば、セルを挿入して右にずらす部分はマクロの記録で調べることができますので、まずはトライしてから具体的なコードを提示しつつ相談されるとよいと思います。

投稿日時: 21/10/22 12:27:55
投稿者: moko2

WinArrow様
 
コメント、例えの提示、ありがとうございます。
 
>もう一度、仕様をキチンと考えた方がよいと思います。
 
おっしゃる通りです。安易に投稿してしまい大変申し訳ありません。
もう一度、きちんと考えます。ありがとうございます。
 
 
 
もこな2様
 
コメント、例えの提示、ありがとうございます。
 
>繰り返す部分が分からないのであれば、セルを挿入して右にずらす部分はマクロの記録で調べることができますので、まずはトライしてから具体的なコードを提示しつつ相談されるとよいと思います。
 
おっしゃる通りです。マクロの記録等で調べてトライしてみます。
ありがとうございます。

投稿日時: 21/11/01 12:40:32
投稿者: moko2

こんにちは。
QooAppさん、WinArrowさん、もこな2さんのアドバイスを参考になんとか
動くようにできました。ありがとうございました。

投稿日時: 21/11/01 12:40:50
投稿者: moko2

こんにちは。
QooAppさん、WinArrowさん、もこな2さんのアドバイスを参考になんとか
動くようにできました。ありがとうございました。