Excel VBA質問箱 IV

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

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


10336 / 13646 ツリー ←次へ | 前へ→

【22391】コマンドボタンを利用してのマクロ作業 misaki 05/2/17(木) 19:47 質問[未読]
【22392】Re:コマンドボタンを利用してのマクロ作業 かみちゃん 05/2/17(木) 20:09 発言[未読]
【22393】Re:コマンドボタンを利用してのマクロ作業 misaki 05/2/17(木) 20:19 お礼[未読]
【22394】Re:コマンドボタンを利用してのマクロ作業 かみちゃん 05/2/17(木) 20:37 発言[未読]
【22408】Re:コマンドボタンを利用してのマクロ作業 misaki 05/2/18(金) 13:40 発言[未読]
【22416】Re:コマンドボタンを利用してのマクロ作業 Jaka 05/2/18(金) 17:32 発言[未読]
【22420】Re:コマンドボタンを利用してのマクロ作業 ponpon 05/2/18(金) 21:40 回答[未読]
【22421】Re:コマンドボタンを利用してのマクロ作業 bykin 05/2/18(金) 23:41 回答[未読]
【22422】Re:コマンドボタンを利用してのマクロ作業 ponpon 05/2/18(金) 23:58 発言[未読]
【22424】Re:コマンドボタンを利用してのマクロ作業 bykin 05/2/19(土) 0:24 発言[未読]
【22426】Re:コマンドボタンを利用してのマクロ作業 misaki 05/2/19(土) 10:44 お礼[未読]

【22391】コマンドボタンを利用してのマクロ作業
質問  misaki E-MAIL  - 05/2/17(木) 19:47 -

引用なし
パスワード
   下記の様な事をコマンドボタンをSheet上に作成して実行させたいのですが
上手な方法はないでしょうか?

1.基本のsheetに関数付のSheetを作ります(これは資料として作成してあるので特に意味はありません)
2.基本のsheet上にコマンドボタンを作成します
 ここからが知りたいところです
3.コマンドボタンをクリックする
4.基本sheetの次に新しいsheetを1枚自動作成する
5.基本sheet上のデ−タをすべてコピ−する
6.4で作成したsheetにコピ−されたデ−タを関数抜きで(値と罫線等のみ)貼り付ける
7.新たなsheetのコマンドボタンを消去

とアクティブなsheetを計算関数抜きで履歴として新たなsheetに残したいのですが勉強不足でマクロが巧くくめません…
どなたか教えていただけないでしょうか?

【22392】Re:コマンドボタンを利用してのマクロ作業
発言  かみちゃん  - 05/2/17(木) 20:09 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>4.基本sheetの次に新しいsheetを1枚自動作成する
>5.基本sheet上のデ−タをすべてコピ−する
>6.4で作成したsheetにコピ−されたデ−タを関数抜きで(値と罫線等のみ)貼り付ける
>7.新たなsheetのコマンドボタンを消去

これらの操作を「マクロの記録」で記録できませんか?
そうすると、ある程度のコードはできあがると思います。

【22393】Re:コマンドボタンを利用してのマクロ作業
お礼  misaki E-MAIL  - 05/2/17(木) 20:19 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>4.基本sheetの次に新しいsheetを1枚自動作成する
>>5.基本sheet上のデ−タをすべてコピ−する
>>6.4で作成したsheetにコピ−されたデ−タを関数抜きで(値と罫線等のみ)貼り付ける
>>7.新たなsheetのコマンドボタンを消去
>
>これらの操作を「マクロの記録」で記録できませんか?
>そうすると、ある程度のコードはできあがると思います。

早速のお返事ありがとう御座います
先述の「マクロの記録」にてやってみてるのですが
やり方が悪いのか実行に移すとデバックがなになにとエラ−が発生してしまって
どう修正していいものかわからなかったのです。
今から出勤しますので明日またこちらを閲覧しにきたいと思います
ありがとうございました。

【22394】Re:コマンドボタンを利用してのマクロ作業
発言  かみちゃん  - 05/2/17(木) 20:37 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>先述の「マクロの記録」にてやってみてるのですが
>やり方が悪いのか実行に移すとデバックがなになにとエラ−が発生してしまって

それでは、以下の内容を教えてください。
・「マクロの記録」で記録したコード
・エラーの内容(「なになに」ではなく、一言一句確実に)
・エラーが出たときに「デバッグ」ボタンをクリックすると、どこでエラーになっ
 ているかが黄色反転されるので、その箇所
これらの内容を教えていただけると、より具体的なアドバイスができると思います。

【22408】Re:コマンドボタンを利用してのマクロ作業
発言  misaki E-MAIL  - 05/2/18(金) 13:40 -

引用なし
パスワード
   >・「マクロの記録」で記録したコード
>・エラーの内容(「なになに」ではなく、一言一句確実に)
>・エラーが出たときに「デバッグ」ボタンをクリックすると、どこでエラーになっ
> ているかが黄色反転されるので、その箇所
>これらの内容を教えていただけると、より具体的なアドバイスができると思います。

かみちゃんさんありがとうございます。
早速ですが私の試した方法です。

<記録したコ−ド>

Private Sub CommandButton1_Click()
'
' Macro1 Macro
' マクロ記録日 : 2005 2 18 ユーザー名 : misaki
'

'
  ActiveWindow.SmallScroll Down:=-12
  ActiveSheet.Shapes("CommandButton1").Select
  Sheets("基本sheet").Select
  Sheets("基本sheet").Copy Before:=Sheets(1)
  Sheets("基本sheet (2)").Select
  Sheets("基本sheet (2)").Move After:=Sheets(2)
  Sheets("基本sheet").Select
  Cells.Select
  Selection.Copy
  Sheets("基本sheet (2)").Select
  Cells.Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  ActiveSheet.Shapes("CommandButton1").Select
  Application.CutCopyMode = False
  Selection.Cut
  ActiveWindow.SmallScroll Down:=-9
End Sub

<エラ−内容>
実行時のエラ−'1004'
RangeクラスのSelectメソッドが失敗しました。

<デバックボタン押した時>
ActiveWindow.SmallScroll Down:=-12
  ActiveSheet.Shapes("CommandButton1").Select
  Sheets("基本sheet").Select
  Sheets("基本sheet").Copy Before:=Sheets(1)
  Sheets("基本sheet (2)").Select
  Sheets("基本sheet (2)").Move After:=Sheets(2)
  Sheets("基本sheet").Select
  Cells.Select         ←(ここの行が黄色く反転されてます)
  Selection.Copy
  Sheets("基本sheet (2)").Select
  Cells.Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  ActiveSheet.Shapes("CommandButton1").Select
  Application.CutCopyMode = False
  Selection.Cut
  ActiveWindow.SmallScroll Down:=-9

と具体的な内容は上記のとおりです。
このやり方では新たなsheetのマクロボタンは削除されないしスム−ズに実行されないしと困惑してました。
あと基本Sheet上のボタンを押すと基本sheetの内容を変えても履歴が順次右に蓄積されるようにできるでしょうか?

丁寧な回答ありがとうございました。

【22416】Re:コマンドボタンを利用してのマクロ作業
発言  Jaka  - 05/2/18(金) 17:32 -

引用なし
パスワード
   こんにちは。
パッと見ただけですけど。

>  ActiveWindow.SmallScroll Down:=-12      ←いらないと思います。
>  ActiveSheet.Shapes("CommandButton1").Select ←いらないと思います。
>  Sheets("基本sheet").Select
>  Sheets("基本sheet").Copy Before:=Sheets(1)
>  Sheets("基本sheet (2)").Select
>  Sheets("基本sheet (2)").Move After:=Sheets(2)
>  ActiveSheet.Shapes("CommandButton1").Select
>  Application.CutCopyMode = False
>  Selection.Cut
>  ActiveWindow.SmallScroll Down:=-9      ←いらないと思います。

    ↓

  Sheets("基本sheet").Copy Before:=Sheets(1)
  DoEvents
  Sheets("基本sheet (2)").Move After:=Sheets(2)
  Sheets("基本sheet").Cells.Copy
  DoEvents
  Sheets("基本sheet (2)").Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    ↓この辺は、よくわかりません。ボタンを消すんですか?
  ActiveSheet.Shapes("CommandButton1").Cut

【22420】Re:コマンドボタンを利用してのマクロ作業
回答  ponpon  - 05/2/18(金) 21:40 -

引用なし
パスワード
   ponponです。こんばんは。

>3.コマンドボタンをクリックする
>4.基本sheetの次に新しいsheetを1枚自動作成する
>5.基本sheet上のデ−タをすべてコピ−する
>6.4で作成したsheetにコピ−されたデ−タを関数抜きで(値と罫線等のみ)貼り付ける

マクロの記録からです。
形式を選択して貼り付けには、値と罫線というのはないので、
値だけ貼り付けるなら
こうなると思います。
「基本シート」にコピペしてください。

Private Sub CommandButton1_Click()
  Sheets("基本シート").Cells.Copy
  Sheets.Add after:=Sheets("基本シート")
  Selection.PasteSpecial Paste:=xlPasteValues

End Sub

罫線も含めてすべてなら
Private Sub CommandButton1_Click()
  Sheets("基本シート").Cells.Copy
  Sheets.Add after:=Sheets("基本シート")
  Selection.PasteSpecial Paste:=xlPasteAll

End Sub

【22421】Re:コマンドボタンを利用してのマクロ作業
回答  bykin  - 05/2/18(金) 23:41 -

引用なし
パスワード
   こんばんわ。

単純にプロシージャを実行するだけなんやったら、「コマンドボタン」使うより
フォームツールバーにある「ボタン」のほうが軽くてええと思うよ。
こんなんでどーでっか?

1.標準モジュールを追加し、下記コードを書く。

Sub 履歴シート作成()
  With ThisWorkbook
    .Worksheets("基本sheet").Cells.Copy
    With .Worksheets.Add(After:=.Worksheets("基本sheet")).Cells
      .PasteSpecial xlPasteFormats
      .PasteSpecial xlPasteValues
    End With
  End With
  Application.CutCopyMode = False
End Sub

2.基本sheetにフォームツールバーからボタンを1個配置する。
3.自動的にマクロ登録画面が表示されるので「履歴シート作成」を選択する。

※既存の「コマンドボタン」と、シートモジュールのコードは削除してください。

試してみてな。
ほな。

【22422】Re:コマンドボタンを利用してのマクロ作業
発言  ponpon  - 05/2/18(金) 23:58 -

引用なし
パスワード
   ▼bykin さん:
ponponです。

>.PasteSpecial xlPasteFormats
これ(書式)で、罫線もコピーできるのですね。

【22424】Re:コマンドボタンを利用してのマクロ作業
発言  bykin  - 05/2/19(土) 0:24 -

引用なし
パスワード
   ▼ponpon はん:

どもども。
この前のスレッドの最後も見といておくれやす。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=22204;id=excel

misakiはん、お邪魔レスですんまへーん。
ほなっ!

【22426】Re:コマンドボタンを利用してのマクロ作業
お礼  misaki E-MAIL  - 05/2/19(土) 10:44 -

引用なし
パスワード
   返信遅れました…
jakaさんponponさんbykinさん判りやすい解説とともに回答ありがとうございました。
無事に作成できましたのでご報告させていただきます。

更にbykinさんは参考になるHPまで紹介して頂いてすごく勉強になりました!
素早い回答のできる皆さんに敬意を抱くとともにいろんなことのできるVBが好きになりそうです。
回答くださった皆さん本当にありがとうございました。

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