重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBA初心者の私ですが、過去何度がご質問させて頂きまして
「ただの落書きレベル、最初から書き直したほうがいい」
という辛辣な評価を頂きましたので、まずは基礎からと思い改めて書き直しを始めました。
やりたいこととしては、添付画像にボタンを作ってありますが
そこから
1.ボタンを押すと「実行しますか?」とはい、いいえのメッセージボックスを出す。
2.任意のExcelファイルを開く
3.O列の残数をD列に移す
の3つを順番に行いたいです。
現在進行形で初心者ながら調べたりしていますが、やはり理解力に乏しいようで
皆様のお力を借りられればと思い改めてご質問させて頂きます。
現在書いているコードは任意のExcelファイルを開く、というコードでご教示頂きました

'実行前に確認をする

'ここまで

'Excelファイルを任意に選択して開く
Dim myName As Variant
myName = Application.GetOpenFilename("Excelファイル (*.xls;*.xlsm),*.xls;*.xlsm")
If myName = False Then Exit Sub
Application.Workbooks.Open myName
'ここまで

'「本日数」と「残数」の値を0にする

'ここまで
という状態です。
どなたかご教示いただけませんでしょうか。
よろしくお願いいたします。

「Excal2013のVBAマクロについて」の質問画像

質問者からの補足コメント

  • つらい・・・

    '「本日数」と「残数」の値を0にする
    というコメントは間違いです、申し訳ありません。

      補足日時:2016/01/04 14:20

A 回答 (3件)

こんにちは



ブック間の制御はクセがありますので、参考になればと思いました
※切り替えたとたんに相手ブックに依存するのが面倒なところです

'ここから
Sub test()

Dim myName As Variant
myName = Application.GetOpenFilename("Excelファイル (*.xls;*.xlsm),*.xls;*.xlsm")
If myName = False Then Exit Sub
'ここで相手先ブック名が入力されます(使わせて頂きました)

DIM WB as Workbook
Set WB=Workbooks.Open(myName) 'ここから相手先ブックに制御が移ります

'この間、好きに相手先ブック内を編集できます
'例えば
Cells(1,1)=Cells(2,1)
Cells(2,1)=Cells(2,2)
Cells(3,1)=Cells(2,3)
'など全て相手ブック内で動作します

WB.Close SaveChanges:=true '仕事が終わったら、相手先ブックを保存終了させます(肝心なところ)

Set wB=Nothing 'オブジェクトの開放(忘れずに)

'ここから自ブックの制御に戻ります

End Sub
'ここまで

ブック間の制御は面倒です

では
    • good
    • 0

>3はO列の数字が入っている行を・・・


数字が入っている行は、何行目からとか固定ではないのでしょうか。
途中に数字以外の文字が入ることがあるのでしょうか?
    • good
    • 0

とりあえず


1は
If MsgBox("実行しますか", vbOKCancel) = vbOK Then
で分岐できると思います。

Sub ボタン1_Click()
Dim myName As Variant
If MsgBox("実行しますか", vbOKCancel) = vbOK Then
myName = Application.GetOpenFilename("Excelファイル (*.xls;*.xlsm),*.xls;*.xlsm")
If myName = False Then Exit Sub
Application.Workbooks.Open myName
’ここに 3 を実行するコード
End If
End Sub

3.O列の残数をD列に移す
とは
Range("D6:D100").Value=Range("O6:O100").Value
みたいな事でしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
自分なりに模索してみましたが全くの見当はずれだったようで。
3はO列の数字が入っている行を全てD列の数字が入っている行に移動させるということです。

お礼日時:2016/01/07 13:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!