Excel VBA質問箱 IV

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

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


10781 / 13644 ツリー ←次へ | 前へ→

【19813】列の挿入 tamago 04/11/17(水) 15:29 質問[未読]
【19851】Re:列の挿入 [名前なし] 04/11/17(水) 23:01 発言[未読]
【19860】Re:列の挿入 tamago 04/11/18(木) 9:23 発言[未読]
【19904】Re:列の挿入 [名前なし] 04/11/18(木) 22:07 発言[未読]
【19934】Re:列の挿入 tamago 04/11/19(金) 13:37 お礼[未読]

【19813】列の挿入
質問  tamago  - 04/11/17(水) 15:29 -

引用なし
パスワード
   VBA超初心者です。超基本的な質問で申し訳ないのですが、助けてください。
A列〜E列まで非表示になっている列を再表示させ、J列を選択し1列挿入し右にシフトさせるという処理をマクロの自動記録で記録しました。これを他のブックで実行するとJ列の前後に2行づづつまり余分な4行が挿入されます。下に自動記録のコードを全て記入しますので、どこを直せばよいのかご教授ください。


Sub データ処理()

  Cells.Select
  Range("F1").Activate
  Selection.EntireColumn.Hidden = False
  Range("A14:E14").Select
  Selection.Cut Destination:=Range("A8:E8")
  Range("A15:D17").Select
  Selection.Cut Destination:=Range("A9:D11")
  Range("A9:D11").Select
  ActiveWindow.SmallScroll Down:=6
  Range("F15").Select
  Selection.AutoFill Destination:=Range("F15:F23")
  Range("F15:F23").Select
  ActiveWindow.SmallScroll Down:=6
  Range("F24").Select
  ActiveCell.FormulaR1C1 = "使用制限対象物質"
  With ActiveCell.Characters(Start:=1, Length:=8).Font
    .Name = "MS Pゴシック"
    .FontStyle = "標準"
    .Size = 9
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
  End With
  ActiveCell.Characters(1, 2).PhoneticCharacters = "シヨウ"
  ActiveCell.Characters(3, 2).PhoneticCharacters = "セイゲン"
  ActiveCell.Characters(5, 2).PhoneticCharacters = "タイショウ"
  ActiveCell.Characters(7, 2).PhoneticCharacters = "ブッシツ"
  Range("F24").Select
  Selection.Copy
  Range("F25:F30").Select
  ActiveSheet.Paste
  ActiveWindow.SmallScroll Down:=9
  Range("F31").Select
  Application.CutCopyMode = False
  Selection.AutoFill Destination:=Range("F31:F43")
  Range("F31:F43").Select
  ActiveWindow.SmallScroll Down:=-18
  Range("F12:I12").Select
  Selection.Copy
  ActiveWindow.SmallScroll ToRight:=-2
  Range("A15:D43").Select
  ActiveSheet.Paste
  ActiveWindow.SmallScroll ToRight:=5
  ActiveWindow.SmallScroll Down:=-3
  Columns("J:J").Select
  Range("J3").Activate
  Application.CutCopyMode = False
  Selection.Insert Shift:=xlToRight
  Range("J14").Select
  ActiveCell.FormulaR1C1 = "質量"
  With ActiveCell.Characters(Start:=1, Length:=2).Font
    .Name = "MS Pゴシック"
    .FontStyle = "標準"
    .Size = 10
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
  End With
  ActiveCell.Characters(1, 2).PhoneticCharacters = "シツリョウ"
  Range("G8").Select
  Selection.Copy
  Range("J15:J43").Select
  ActiveSheet.Paste
  ActiveWindow.SmallScroll ToRight:=-5
  Range("A14").Select
  ActiveWindow.SmallScroll Down:=18
  ActiveWindow.SmallScroll ToRight:=10
  Range("A14:O43").Select
  Application.CutCopyMode = False
  Selection.AutoFilter
  ActiveWindow.SmallScroll ToRight:=3
  Selection.AutoFilter Field:=9, Criteria1:="<>"
End Sub

【19851】Re:列の挿入
発言  [名前なし]  - 04/11/17(水) 23:01 -

引用なし
パスワード
   とりあえず短くしてみました。

Sub データ処理()
  Cells.EntireColumn.Hidden = False
  Range("A14:E14").Cut Range("A8:E8")
  Range("A15:D17").Cut Range("A9:D11")
  Range("F15").AutoFill Range("F15:F23")
  With Range("F24")
    .Value = "使用制限対象物質"
    .Font.Size = 9
    '↓以下の4行は1行に出来そうな気もするけど・・・
    .Characters(1, 2).PhoneticCharacters = "シヨウ"
    .Characters(3, 2).PhoneticCharacters = "セイゲン"
    .Characters(5, 2).PhoneticCharacters = "タイショウ"
    .Characters(7, 2).PhoneticCharacters = "ブッシツ"
  End With
  Range("F24:F30").FillDown
  Range("F31").AutoFill Range("F31:F43")
  Range("F12:I12").Copy Range("A15:D43")
  Columns("J:J").Insert Shift:=xlToRight
  With Range("J14")
    .Value = "質量"
    .Font.Size = 10
    .Characters(1, 2).PhoneticCharacters = "シツリョウ"
  End With
  Range("G8").Copy Range("J15:J43")
  Range("A14:O43").AutoFilter Field:=9, Criteria1:="<>"
End Sub

特に余分な行を挿入してる部分はないようですけど。
作ったマクロはこれだけですか?

【19860】Re:列の挿入
発言  tamago  - 04/11/18(木) 9:23 -

引用なし
パスワード
   ▼[名前なし] さん:
レスありがとうございました。
>作ったマクロはこれだけですか?
 作ったマクロはこれのみです。
>特に余分な行を挿入してる部分はないようですけど。
 最初の投稿文に記載ミスがありました。行ではなく列が挿入されます。
 J列の前後に2列づづつまり余分な4列が挿入されます。
よろしくお願いします。

【19904】Re:列の挿入
発言  [名前なし]  - 04/11/18(木) 22:07 -

引用なし
パスワード
   行でも列でもいいんですけど、[#19851]のマクロは試してみましたか?
試してみて、まだ余分な列が挿入されるようなら、ステップ実行で
どのコードで列が挿入されているのか確認してみてください。

ステップ実行のやり方はこちら
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_030.html


なんとなく、「実はJ列の前後に2行づつ非表示列があった」なんてオチのような。

【19934】Re:列の挿入
お礼  tamago  - 04/11/19(金) 13:37 -

引用なし
パスワード
   ▼[名前なし] さん:
>行でも列でもいいんですけど、[#19851]のマクロは試してみましたか?
試してみたら余分な列は挿入されず、きちんとできました。
おさわがせしました。どうもありがとうございました。

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