• ベストアンサー

最終行に貼り付けるマクロ

個人の住所録ブックAがあります。 1行目 作成日 郵便番号 住所 名前  です。(これは常に1行です) この1行をコピーして、共有のブックBに追加して保存したいのです。 共有のブックBは、パスワード(****)があります。 そして、これまでのデータが入っています。 その最終行を検索して貼り付けるマクロを教えてください。 エクセル2003です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onntao
  • ベストアンサー率32% (108/332)
回答No.6

#2,4,5 onntao です 追記です 構文中のパスワードが正しいものとして WriteResPassword:="ぱすわーど"       ↓   Password:="ぱすわーど" としてみてください

marilin
質問者

お礼

ありがとうございました!! 無事パスワードもクリアしました。 とっても助かりました。 またよろしくお願いします♪

その他の回答 (7)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.8

> でも、同じエラーが出るのですが・・ > インデックスエラーです。 当然ですが、Workbooks("xxx") の "Book1" や "Book2" をご自分の環境に合わせなければエラーになります。 それ以外では A65536 まで行が使われているとエラーが起こります。

marilin
質問者

お礼

もちろん、ブック名・シート名は変えています。 ご協力、ありがとうございます。 とっても助かりました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

こういうことかな? パスワード等は、ご自身で入れてください。 '--------------------------------------- 'パスワード Const MYPW As String = "abc" Sub test()  Dim Fname As String  Dim myWb As Workbook  '共有ブックパス:注意-必ず最後に『\』をいれてください。  Const myPath As String = "○○\●●●\"  '共有ブック名  Fname = "B.xls"  'データソースブック  Set myWb = Workbooks("A.xls")  'すでに開いている場合のメッセージを出さない  Application.DisplayAlerts = False  '画面のちらつきを止める  Application.ScreenUpdating = False   'パスワード付ブックオープン  With Workbooks.Open(myPath & Fname, , , , MYPW, MYPW")   '貼り付け(作成日,郵便番号,住所,名前)   .Worksheets("Sheet1").Range("A65536").End(xlUp).Offset(1).Resize(, 4).Value = _   myWb.Worksheets("Sheet1").Range("A1").Resize(, 4).Value   '終了と保存   .Close True  End With  Application.ScreenUpdating = True  Application.DisplayAlerts = True  Set myWb = Nothing End Sub

marilin
質問者

お礼

ありがとうございます。 説明を入れてもらったんですね♪ 自分でVBAの勉強をする前に、みなさんに頼ってしまってごめんなさい。

  • onntao
  • ベストアンサー率32% (108/332)
回答No.5

#2,4 onntao です >共有のブックBは、パスワード(****)があります。 のパスワードとはどのような手順で設定したものでしょうか? WriteResPassword:="ぱすわーど" の部分はファイル<名前をつけて保存 の中のツール(L)<全般オプション<書き込みパスワード にて設定したものに対するものです。 また、"ぱすわーど"はmarilinさんが実際にお使いのものに修正されていますよね (^-^)/ 

  • onntao
  • ベストアンサー率32% (108/332)
回答No.4

#2 onntao です Sub Test() Workbooks.Open Filename:="C:\Documents and Settings\○○○\○○○\ブックB.xls", WriteResPassword:="ぱすわーど" Workbooks("ブックA.xls").Worksheets("入力").Rows(1).Copy Workbooks("ブックB.xls").Worksheets("データベース"). _ Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues Workbooks("ブックB.xls").Close SaveChanges:=True Application.CutCopyMode = False End Sub "入力"、"データベース"などのシート名をmarilinさんが実際にお使いのものにしてください

marilin
質問者

お礼

ありがとうございます。 今、自宅でテストしてみたら、うまくいきそうです。 月曜日に会社でやってみます。 ただ、ブックBのパスワードを入れるようにメッセージが出ますが、これは仕方ないのですか?

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

#1です。 > コピーして貼り付けるときに、「値」を貼り付ける場合、どうなりますか? Sub Test1()  Workbooks("Book1").ActiveSheet.Rows(1).Copy  Workbooks("Book2").ActiveSheet.Range("A65536").End(xlUp). _         Offset(1, 0).EntireRow.PasteSpecial xlPasteValues  Application.CutCopyMode = False End Sub

marilin
質問者

お礼

ありがとうございました。 でも、同じエラーが出るのですが・・ インデックスエラーです。

  • onntao
  • ベストアンサー率32% (108/332)
回答No.2

Sub Test() Workbooks.Open Filename:="C:\Documents and Settings\○○○\○○○\ブックB.xls", WriteResPassword:="ぱすわーど" Workbooks("ブックA.xls").Worksheets("sheet1").Rows(1).Copy Destination:= _ Workbooks("ブックB.xls").Worksheets("sheet1"). _ Range("A65536").End(xlUp).Offset(1, 0).EntireRow Workbooks("ブックB.xls").Close SaveChanges:=True End Sub ご希望にそっていなかったらごめんなさい

marilin
質問者

お礼

早速のご回答、ありがとうございました。 この書き込みをしたら、実行時エラー9と出ました。 インデックスが有効範囲にありません。 Range("A65536")・・・の行をさしています。 どうしてでしょうか? それからコピーして貼り付けるのを「値」にしたいのですが・・ よろしくお願いします。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ブックA.xls と ブックB.xls は共に開いていて、それぞれのシートがアクティブになっているとして、ブックAの1行目をブックBのA列最終行+1に貼りつけるなら Sub Test()  Workbooks("ブックA.xls").ActiveSheet.Rows(1).Copy Destination:= _    Workbooks("ブックB.xls").ActiveSheet. _      Range("A65536").End(xlUp).Offset(1, 0).EntireRow End Sub

marilin
質問者

お礼

早速のご回答、ありがとうございました。 コピーして貼り付けるときに、「値」を貼り付ける場合、どうなりますか?

関連するQ&A

専門家に質問してみよう