Excel VBA質問箱 IV

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

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


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

【40636】vbaの基本質問 Bnl_f15 06/7/19(水) 14:44 質問[未読]
【40639】Re:vbaの基本質問 Jaka 06/7/19(水) 15:02 発言[未読]
【40643】Re:vbaの基本質問 Jaka 06/7/19(水) 15:48 発言[未読]
【40640】Re:vbaの基本質問 ひげくま 06/7/19(水) 15:14 回答[未読]
【40644】Re:vbaの基本質問 ひげくま 06/7/19(水) 15:54 発言[未読]
【40707】Re:vbaの基本質問 Bnl_f15 さん 06/7/20(木) 19:47 お礼[未読]
【40641】Re:vbaの基本質問 わさび 06/7/19(水) 15:17 発言[未読]
【40642】Re:vbaの基本質問 わさび 06/7/19(水) 15:18 発言[未読]

【40636】vbaの基本質問
質問  Bnl_f15 E-MAIL  - 06/7/19(水) 14:44 -

引用なし
パスワード
   ある決まっているアクションをマクロに纏めましたが、いくつかの質問をさせて
いただきますので、よろしくお願いします。

動作1:シート全体の「セルを結合する」をOFFにする。
動作2:行1:3を削除する。
動作3:列A:A,D:D,E:Eを削除する。
動作4:セルA1に「コード」、B1に「取引先名」、C1に「銀行」を入力する。
動作5:セルE1の消費税の後ろに「(A)」を入力する。
動作6:シート名称を変更する。
動作7:ファイル名を付けて、保存する。

質問1:Application.ScreeUpdating = False
    ・
    ・
    Application.ScreeUpdating = Treu
    画面のちらつきを抑制するため、以上のコードをいれたら、
    サポートしませんというメッセージがでています。
    解決方法はあるのでしょうか?
質問2:VBの知識は無いため、自動登録方式で以下のコードを作りましたが、
    なんか長くて、見づらいと思います。その中に余分なコードはあり
    ますか?または簡素化できるのでしょうか?

Sub Macro1()
  Application.ScreeUpdating = False
  Cells.Select
  With Selection
    .Orientation = 0
    .AddIndent = False
    .ReadingOrder = xlContext
    .MergeCells = False
  End With
  Rows("1:3").Select
  Selection.Delete Shift:=xlUp
  Range("A:A,D:D,E:E").Select
  Range("E1").Activate
  Selection.Delete Shift:=xlToLeft
  Range("A1").Select
  ActiveCell.FormulaR1C1 = "コード"
  With ActiveCell.Characters(Start:=1, Length:=3).Font
    .Name = "MS Pゴシック"
    .FontStyle = "標準"
    .Size = 9
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
  End With
  Range("B1").Select
  ActiveCell.FormulaR1C1 = "取引先名"
  With ActiveCell.Characters(Start:=1, Length:=4).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, 1).PhoneticCharacters = "サキ"
  ActiveCell.Characters(4, 1).PhoneticCharacters = "メイ"
  Range("C1").Select
  ActiveCell.FormulaR1C1 = "銀行"
  With ActiveCell.Characters(Start:=1, Length:=2).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 = "ギンコウ"
  Range("E1").Select
  ActiveCell.FormulaR1C1 = "消費税(A)"
  With ActiveCell.Characters(Start:=1, Length:=6).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, 3).PhoneticCharacters = "ショウヒゼイ"
  Sheets("Sheet1").Select
  Sheets("Sheet1").Name = "支払DB"
  ChDir "C:\"
  ActiveWorkbook.SaveAs Filename:="C:\支払DB.xls", FileFormat:=xlNormal, _
    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
    CreateBackup:=False
  Application.ScreeUpdating = Treu
End Sub

【40639】Re:vbaの基本質問
発言  Jaka  - 06/7/19(水) 15:02 -

引用なし
パスワード
   >質問1:Application.ScreeUpdating = False
           ScreenUpdating

【40640】Re:vbaの基本質問
回答  ひげくま  - 06/7/19(水) 15:14 -

引用なし
パスワード
   ▼Bnl_f15 さん:
こんにちは。

> 質問1:Application.ScreeUpdating = False
>     ・
>     ・
>     Application.ScreeUpdating = Treu

スペルが違いますね。
スクリーンのアップデイトを制御するわけですから、
Scree ではなくて、Screen ですね。

あと、Treu ではなく、True ですね。

> 質問2:VBの知識は無いため、自動登録方式で以下のコードを作りましたが、
>     なんか長くて、見づらいと思います。その中に余分なコードはあり
>     ますか?または簡素化できるのでしょうか?

以下のコードで大丈夫だと思います。

Sub Macro1()
  'スクリーンアップデイト禁止(ちらつき防止処理開始)
  Application.ScreenUpdating = False

  '動作1:シート全体の「セルを結合する」をOFFにする。
  Cells..MergeCells = False

  '動作2:行1:3を削除する。
  Rows("1:3").Delete Shift:=xlUp

  '動作3:列A:A,D:D,E:Eを削除する。
  Range("A:A,D:D,E:E").Delete Shift:=xlToLeft

  '動作4:セルA1に「コード」、B1に「取引先名」、C1に「銀行」を入力する。
  Range("A1").Value = "コード"
  Range("B1").Value = "取引先名"
  Range("C1").Value = "銀行"

  '動作5:セルE1の消費税の後ろに「(A)」を入力する。
  Range("E1").Value = "消費税(A)"

  '動作6:シート名称を変更する。
  ActiveSheet.Name = "支払DB"

  '動作7:ファイル名を付けて、保存する。
  ActiveWorkbook.SaveAs Filename:="C:\支払DB.xls"

  'スクリーンアップデイト許可(ちらつき防止処理解除)
  Application.ScreenUpdating = True
End Sub

【40641】Re:vbaの基本質問
発言  わさび  - 06/7/19(水) 15:17 -

引用なし
パスワード
   内容をちゃんと見ていないので、回答とはいえませんが、
ひとつだけ気になりました。

>    Application.ScreeUpdating = Treu

×Treu → ○True
…なのでは?

【40642】Re:vbaの基本質問
発言  わさび  - 06/7/19(水) 15:18 -

引用なし
パスワード
   ダブリました。ごめんなさい。

【40643】Re:vbaの基本質問
発言  Jaka  - 06/7/19(水) 15:48 -

引用なし
パスワード
   なんとなく不必要っぽいところを削ってみたけど。
必要なのはフォントサイズだけ?

Sub Macro1()
  Application.ScreenUpdating = False
  With Cells
    .Orientation = 0
    .AddIndent = False
    .ReadingOrder = xlContext
    .MergeCells = False
  End With
  Rows("1:3").Delete Shift:=xlUp
  Range("A:A,D:D,E:E").Delete Shift:=xlToLeft
  Range("A1").Value = "コード"
  Range("A1").Font.Size = 9
  With Range("B1")
    .Value = "取引先名"
    .Font.Size = 9
    .Characters(1, 2).PhoneticCharacters = "トリヒキ"
    .Characters(3, 1).PhoneticCharacters = "サキ"
    .Characters(4, 1).PhoneticCharacters = "メイ"
  End With
  With Range("C1")
    .Value = "銀行"
    .Font.Size = 9
    .Characters(1, 2).PhoneticCharacters = "ギンコウ"
  End With
  With Range("E1")
    .Value = "消費税(A)"
    With .Font
      '.Name = "MS Pゴシック"
      '.FontStyle = "標準"
      .Size = 9
      '.Strikethrough = False
      '.Superscript = False
      '.Subscript = False
      '.OutlineFont = False
      '.Shadow = False
      '.Underline = xlUnderlineStyleNone
      '.ColorIndex = xlAutomatic
    End With
    .Characters(1, 3).PhoneticCharacters = "ショウヒゼイ"
  End With
  Sheets("Sheet1").Name = "支払DB"
  ActiveWorkbook.SaveAs Filename:="C:\支払DB.xls", FileFormat:=xlNormal, _
    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
    CreateBackup:=False
  Application.ScreenUpdating = True
End Sub

【40644】Re:vbaの基本質問
発言  ひげくま  - 06/7/19(水) 15:54 -

引用なし
パスワード
   >  '動作6:シート名称を変更する。
>  ActiveSheet.Name = "支払DB"

ここは、
  Sheets("Sheet1").Name = "支払DB"
のほうが解りやすいかも。

【40707】Re:vbaの基本質問
お礼  Bnl_f15 さん  - 06/7/20(木) 19:47 -

引用なし
パスワード
   jakaさん、ひげくまさん、わさびさん
 こんばんわ。おかげさまで、問題解決できました。
本当にありがとうございました。

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