Excel VBA質問箱 IV

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

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


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

【79258】隣のセルが空白でない場合に値を入力したい VBA勉強始めました 17/6/21(水) 13:28 質問[未読]
【79259】Re:隣のセルが空白でない場合に値を入力し... マナ 17/6/21(水) 18:49 発言[未読]
【79262】Re:隣のセルが空白でない場合に値を入力し... VBA勉強始めました 17/6/23(金) 16:25 発言[未読]
【79264】Re:隣のセルが空白でない場合に値を入力し... マナ 17/6/23(金) 18:45 発言[未読]
【79279】Re:隣のセルが空白でない場合に値を入力し... VBA勉強始めました 17/6/28(水) 9:36 回答[未読]
【79282】Re:隣のセルが空白でない場合に値を入力し... マナ 17/6/30(金) 22:22 発言[未読]
【79285】Re:隣のセルが空白でない場合に値を入力し... VBA勉強始めました 17/7/1(土) 0:33 発言[未読]
【79286】Re:隣のセルが空白でない場合に値を入力し... マナ 17/7/1(土) 9:28 発言[未読]
【79296】Re:隣のセルが空白でない場合に値を入力し... VBA勉強始めました 17/7/5(水) 16:13 お礼[未読]

【79258】隣のセルが空白でない場合に値を入力した...
質問  VBA勉強始めました  - 17/6/21(水) 13:28 -

引用なし
パスワード
   始めましてVBAを勉強し始めた者です。

毎月、従業員名簿を作成しているのですが
ほぼ同じ作業を手作業で行っており、非効率な為
VBAを使って作業を簡略化できればと考えております。

途中までの過程は独学ながらなんとか作成できているのですが
下記の作業だけどうすればよいかわからず固まっております…

【作業内容】
名簿を作成する為のファイルには5つのシートがあり
列の構成はすべて同じで、行は所属従業員によってシートごとでバラバラです。

   A   B   C   D  E  F
1 コード 部門名 No. 氏名
2  0000   A   10  a
3  0001   B   11  b
4  0002   C   12  c
5  0003   D   13  d
6

ここに下記のVBAでA列の左横に1列挿入します。
Sheets(1).Select
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

   A    B    C   D   E  F
1     コード 部門名 No. 氏名
2      0000   A   10  a
3      0001   B   11  b
4      0002   C   12  c
5      0003   D   13  d
6

この挿入したA列にB列が空白ではない場合
数値を入力したいと考えているのですが
VBAのテキストも買って読んでいるのですが
うまくVBAを組めません…

どなたかお力添えを頂けないでしょうか?

【79259】Re:隣のセルが空白でない場合に値を入力...
発言  マナ  - 17/6/21(水) 18:49 -

引用なし
パスワード
   ▼VBA勉強始めました さん:

>この挿入したA列にB列が空白ではない場合
>数値を入力したいと考えているのですが

B列の途中の行に空白はあるのでしょうか。
それとも、データはすべて埋まっているのでしょうか。

【79262】Re:隣のセルが空白でない場合に値を入力...
発言  VBA勉強始めました  - 17/6/23(金) 16:25 -

引用なし
パスワード
   ▼マナ さん:

返信が遅くなり申し訳ありません。
投稿した翌日から風邪で寝込んでおりました…。

B列の途中には空白はありません。

宜しくお願い致します。

>▼VBA勉強始めました さん:
>
>>この挿入したA列にB列が空白ではない場合
>>数値を入力したいと考えているのですが
>
>B列の途中の行に空白はあるのでしょうか。
>それとも、データはすべて埋まっているのでしょうか。

【79264】Re:隣のセルが空白でない場合に値を入力...
発言  マナ  - 17/6/23(金) 18:45 -

引用なし
パスワード
   ▼VBA勉強始めました さん:

下記マクロの意味がわかりますか。
ステップ実行で1行ずつ確認してください。
数値を入れたいセル範囲を選択できましたか?

Option Explicit

Sub test()
  Dim ws As Worksheet
  
  Set ws = ActiveSheet
  
  ws.Columns(1).Insert
  ws.Range("A1").Select
  ws.Range("A1").CurrentRegion.Select
  ws.Range("A1").CurrentRegion.Columns(1).Select
  
End Sub

【79279】Re:隣のセルが空白でない場合に値を入力...
回答  VBA勉強始めました  - 17/6/28(水) 9:36 -

引用なし
パスワード
   ▼マナ さん:

度々返信が遅くなり申し訳ありません。

ご教授頂いたVBAですが
最後の2行のコマンドは初めて見た為
完全には理解できておりませんが
A1のセルを含めてデータが入力されている範囲を選択し
その範囲の中からA列だけを選択しているということでしょうか?

ステップで実行し、ご教授頂いたVBAで
数値を入力したいセル範囲を選択することができました!

>Sub test()
>  Dim ws As Worksheet
>  
>  Set ws = ActiveSheet  ⇒アクティブなシートを選択
>  
>  ws.Columns(1).Insert  ⇒アクティブなシートのA列に挿入
>  ws.Range("A1").Select  ⇒アクティブなシートのA1セルを選択
>  ws.Range("A1").CurrentRegion.Select
>  ws.Range("A1").CurrentRegion.Columns(1).Select
>  
>End Sub

>▼VBA勉強始めました さん:
>
>下記マクロの意味がわかりますか。
>ステップ実行で1行ずつ確認してください。
>数値を入れたいセル範囲を選択できましたか?
>
>Option Explicit
>
>Sub test()
>  Dim ws As Worksheet
>  
>  Set ws = ActiveSheet
>  
>  ws.Columns(1).Insert
>  ws.Range("A1").Select
>  ws.Range("A1").CurrentRegion.Select
>  ws.Range("A1").CurrentRegion.Columns(1).Select
>  
>End Sub

【79282】Re:隣のセルが空白でない場合に値を入力...
発言  マナ  - 17/6/30(金) 22:22 -

引用なし
パスワード
   ▼VBA勉強始めました さん:

>数値を入力したいセル範囲を選択することができました!

では、「数値を入力する」がどういう操作なのか教えてください。
それとも、そこは出来ていますか?

【79285】Re:隣のセルが空白でない場合に値を入力...
発言  VBA勉強始めました  - 17/7/1(土) 0:33 -

引用なし
パスワード
   ▼マナ さん:

いつも親切に教えて頂き、ありがとうございます。
選択したらそのセル範囲に数値の「1」を入力させたいんです。

実は前回教えて頂いたVBAの最後の
ws.Range("A1").CurrentRegion.Columns(1).Select
で数値を入力したいセルの範囲を選んでくれたので

ws.Range("A1").CurrentRegion.Columns(1).Select.Value=1

このように少し手を加えたところ、エラーとなってしまいました。
(すでに帰宅しており、エラー内容などは月曜以降でないとわかりません)


>▼VBA勉強始めました さん:
>
>>数値を入力したいセル範囲を選択することができました!
>
>では、「数値を入力する」がどういう操作なのか教えてください。
>それとも、そこは出来ていますか?

【79286】Re:隣のセルが空白でない場合に値を入力...
発言  マナ  - 17/7/1(土) 9:28 -

引用なし
パスワード
   ▼VBA勉強始めました さん:

>ws.Range("A1").CurrentRegion.Columns(1).Select.Value=1

すべて1ですか? 
こうです。

範囲.Select
Selection.Value = 1

または、1行で

範囲.Value = 1

とします。

Sub test2()
  Dim ws As Worksheet
 
  Set ws = ActiveSheet
 
  ws.Columns(1).Insert
  ws.Range("A1").CurrentRegion.Columns(1).Value = 1
  
End Sub

  

【79296】Re:隣のセルが空白でない場合に値を入力...
お礼  VBA勉強始めました  - 17/7/5(水) 16:13 -

引用なし
パスワード
   ▼マナ さん:

シートによっては1だったり2だったりするのですが
教えて頂いたコードでやりたいことができました。

私も早くマナさんのようにVBAが使いこなせるようになりたいです。

今回の件では本当にたくさんお世話になりました。
ありがとうございました。

>▼VBA勉強始めました さん:
>
>>ws.Range("A1").CurrentRegion.Columns(1).Select.Value=1
>
>すべて1ですか? 
>こうです。
>
>範囲.Select
>Selection.Value = 1
>
>または、1行で
>
>範囲.Value = 1
>
>とします。
>
>Sub test2()
>  Dim ws As Worksheet
> 
>  Set ws = ActiveSheet
> 
>  ws.Columns(1).Insert
>  ws.Range("A1").CurrentRegion.Columns(1).Value = 1
>  
>End Sub
>
>

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