Excel VBA質問箱 IV

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

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


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

【43488】エクセル2003と2000のコードの違... 勉強中です 06/10/17(火) 12:55 質問[未読]
【43489】Re:エクセル2003と2000のコードの... Statis 06/10/17(火) 13:09 回答[未読]
【43490】Re:エクセル2003と2000のコード... 勉強中です 06/10/17(火) 13:26 お礼[未読]
【43495】Re:エクセル2003と2000のコード... 勉強中です 06/10/17(火) 15:30 発言[未読]
【43496】Re:エクセル2003と2000のコード... Statis 06/10/17(火) 15:57 回答[未読]
【43498】Re:エクセル2003と2000のコード... 勉強中です 06/10/17(火) 17:14 お礼[未読]
【43501】Re:エクセル2003と2000のコード... りん 06/10/17(火) 19:04 発言[未読]
【43503】Re:エクセル2003と2000のコード... 勉強中です 06/10/17(火) 19:56 発言[未読]
【43504】Re:エクセル2003と2000のコード... りん 06/10/17(火) 20:18 発言[未読]
【43505】Re:エクセル2003と2000のコード... 勉強中です 06/10/17(火) 20:49 お礼[未読]

【43488】エクセル2003と2000のコードの違...
質問  勉強中です E-MAIL  - 06/10/17(火) 12:55 -

引用なし
パスワード
   みなさま こんにちは、いつも参考にさせていただいております。
私物のパソコンはエクセルが2003なんですが 会社は2000を使用しています。2003で作成したコードを2000では使用できない部分があり困っています。 会社のパソコンにはVBAのヘルプファイルがインストールされておらず オフィスのCDもこの場所にありません。それはおかしい!と思いますが、パソコンを導入している業者任せの設定をしたらしく現状マクロを作成は私しか行っていないため、考えていなかったようです。 前置きが長くなりましたが、困っている部分は シート1の指定範囲をコピーして シート2〜4の入力のあるセルの一番右端に貼付けをしていくというものです。マクロの記録でもしてみたのですがうまく行きません。 どこが悪いのか指摘していただけないでしょうか。お願いいたします。 以下にコードを載せます。 2003使用になっているので、Selection.PasteSpecialの所は 値の貼付けに変更してあります。
Private Sub UserForm_Activate()

  Me.Label1.Caption = "月次更新中"
  Me.Label2.Caption = "暫くお待ち下さい"
  Me.CommandButton1.Visible = False

Application.Wait (Now + TimeValue("00:00:03"))

Sheets("Sheet2").Activate
   Range("H2:J65536").Copy
    Cells(2, 38).End(xlToRight).Offset(0, 1).Select
     Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats,Operation:=xlNone,_
SkipBlanks:=False, Transpose:=False
   
’この部分を変更してもうまく張り付きません。

ActiveCell.Offset(-1, 0).Select
   ActiveCell.FormulaR1C1 = Date

  Sheets("Sheet3").Activate
   Range("H2:J65536").Copy
    Cells(2, 38).End(xlToRight).Offset(0, 1).Select
     Selection.PasteSpecialPaste:=xlPasteValuesAndNumberFormats,_
      Operation:=xlNone, SkipBlanks:=False, Transpose:=False
   ActiveCell.Offset(-1, 0).Select
   ActiveCell.FormulaR1C1 = Date

Sheets("合計").Activate
   Range("H2:J65536").Copy
    Cells(2, 38).End(xlToRight).Offset(0, 1).Select
     Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
                    xlNone, SkipBlanks:=False, Transpose:=False
   ActiveCell.Offset(-1, 0).Select
   ActiveCell.FormulaR1C1 = Date
   ActiveWorkbook.Save
  Sheets("Sheet4").Activate
  
  Me.Label1.Caption = "更新終了!"
  Me.Label2.Caption = "終了を押してください"
  Me.CommandButton1.Visible = True
  
End Sub
よろしくお願いします。

【43489】Re:エクセル2003と2000のコード...
回答  Statis  - 06/10/17(火) 13:09 -

引用なし
パスワード
   こんにちは

>Paste:=xlPasteValuesAndNumberFormats
上記は2002以降のものです(値と数値の書式)
> Selection.PasteSpecial >Paste:=xlPasteValuesAndNumberFormats,Operation:=xlNone,_
>SkipBlanks:=False, Transpose:=False
上記を下記に変更してみてください。
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

【43490】Re:エクセル2003と2000のコード...
お礼  勉強中です E-MAIL  - 06/10/17(火) 13:26 -

引用なし
パスワード
   Statisさん 早速のお返事ありがとうございます。
早速実行して報告いたします。 ありがとうございます!

【43495】Re:エクセル2003と2000のコード...
発言  勉強中です E-MAIL  - 06/10/17(火) 15:30 -

引用なし
パスワード
   Statisさん こにちは、実行してみたのですが 
実行時エラー 1004
rangeクラスのspecialメゾットに失敗しました。
のエラーになります。 

Cells(2, 38).End(xlToRight).Offset(0, 1).Selectの選択が悪いのでしょうか?
またはエクセルの機能が何か足りないのでしょうか
マクロではなく手動で実行してみた所 
この操作には同じサイズの結合セルが必要です と出ます一度貼付け(全て)から
行っても同じです。ソフトの問題なんでしょうか? 知識不足すみません。

【43496】Re:エクセル2003と2000のコード...
回答  Statis  - 06/10/17(火) 15:57 -

引用なし
パスワード
   ▼勉強中です さん:
こんにちは

>Statisさん こにちは、実行してみたのですが 
>実行時エラー 1004
>rangeクラスのspecialメゾットに失敗しました。
>のエラーになります。 
>
> Cells(2, 38).End(xlToRight).Offset(0, 1).Selectの選択が悪いのでしょうか?
>またはエクセルの機能が何か足りないのでしょうか
>マクロではなく手動で実行してみた所 
>この操作には同じサイズの結合セルが必要です と出ます一度貼付け(全て)から
>行っても同じです。ソフトの問題なんでしょうか? 知識不足すみません。

結合セルはマクロには相性がよくありません
結合セルを解除すると問題ないかと思います。

【43498】Re:エクセル2003と2000のコード...
お礼  勉強中です E-MAIL  - 06/10/17(火) 17:14 -

引用なし
パスワード
   Statisさん  こんにちは!

ありがとうございます。 無事解決しました。
お忙しい中時間を割いていただきましてありがとうございます。
また、解らない時はご協力をお願いいたします。
ついではいけないと思うのですが、質問させてください。

2000と2003では使用できる関数とかも違うのですか?
マクロは2003からはじめたので、後学のためにお聞きしたいのですが?
気が向いた時でかまいません。ほぼ毎日このサイトには来ていますので
レスが着いていたら勉強させていただきます。

【43501】Re:エクセル2003と2000のコード...
発言  りん E-MAIL  - 06/10/17(火) 19:04 -

引用なし
パスワード
   勉強中です さん、こんばんわ。

>2000と2003では使用できる関数とかも違うのですか?
オブジェクトやプロパティが増減するだけでなく、関数の引数の値や設定可能な数が違う事が多々あります。

たとえば、PasteSpecialの場合、
(範囲).PasteSpecial(Paste, Operation, SkipBlanks, Transpose)

XL2000では、
Pasteの使用できる定数は、XlPasteTypeクラス
xlPasteAll (既定値)
xlPasteFormulas
xlPasteValues
xlPasteFormats
xlPasteNotes
xlPasteAllExceptBorders のいずれかです。
(ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaxl/html/xlmthPasteSpecialRangeObj.asp
から引用)

XL2003では、
Pasteの使用できる定数は、XlPasteTypeクラス
xlPasteAll (既定値)
xlPasteAllExceptBorders
xlPasteColumnWidths
xlPasteComments
xlPasteFormats
xlPasteFormulas
xlPasteFormulasAndNumberFormats
xlPasteValidation
xlPasteValues
xlPasteValuesAndNumberFormats
(ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2003/vbaxl/html/xlmthPasteSpecialRangeObj.asp
から引用)

となっていて、あきらかに数がちがいます。

私個人的には、過去にツールバーのIDが変わっていた事が、一番ダメージ大でした。

【43503】Re:エクセル2003と2000のコード...
発言  勉強中です E-MAIL  - 06/10/17(火) 19:56 -

引用なし
パスワード
   りんさん こんばんは、
機能自体が大分追加になっているので、2003で作ったものを コピーして使用したら エラーでまくりで苦労しています。
まぁ 会社のエクセル自体が機能が不足しているのかもしれません。

TextBox10.Text = Format(TextBox10.Value, "0.0") がエラーになりました
機能自体のインストールが足りないのですかね?

しかしながらなれていくしか無い模様です。今後もお世話になると思いますので
その節はよろしくお願いします。

【43504】Re:エクセル2003と2000のコード...
発言  りん E-MAIL  - 06/10/17(火) 20:18 -

引用なし
パスワード
   勉強中です さん、こんばんわ。

>機能自体が大分追加になっているので2003で作ったものを コピーして使用したら エラーでまくりで苦労しています。
>まぁ 会社のエクセル自体が機能が不足しているのかもしれません。
 まあ、常に最新でいければ文句はないのですが、実際そうはいきませんしね(笑)
XLがXPになったときに、古いバージョンのファイルの一部がごっそり開けなくなり、サポート技術情報で「仕様です」みたいに書かれたときは殺意がわきましたが、それに比べたら開けるだけまだましかもしれません。
 あと困ったのは、ActiveSheetが実際にアクティブになっているシートを指してないことがあることで困ったくらいですかね。Applicationをつけて解決しましたが。

本当に、どんな罠が待っていることやら・・・

>TextBox10.Text = Format(TextBox10.Value, "0.0") がエラーになりました
>機能自体のインストールが足りないのですかね?
フォームにTextBox1を置いて試したところエラーになりませんでした。
別の理由があるような気がします。

【43505】Re:エクセル2003と2000のコード...
お礼  勉強中です E-MAIL  - 06/10/17(火) 20:49 -

引用なし
パスワード
   りんさん 
こんばんは!

あっ と思い違う物を移して動かして見たところ5個のユーザーフォーム中
3個はエラーにならない??(^^;・・・(汗々)
壊れてるのかもしれません。 コードを検証をして見ます。


>本当に、どんな罠が待っていることやら・・・
 
まさに その通りです・・

とにかく一歩一歩進んで行くしかありません がんばます。

質問箱の主旨とは離れてしまいました 管理人さん他の皆さんごめんなさい。
付き合っていただいた りんさん 回答をくれた Statisさんありがとうございました また 付き合ってください。

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