[[20191221151015]] 『マクロボタンを押すと別シートに保存されるVBAコ=x(そら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロボタンを押すと別シートに保存されるVBAコードについて』(そら)

仕事で膨大なデータの管理をするためのシートを作成しています。どうしてもVBAのコードがうまくできなくて教えてください。超初心者です。

管理シートは3シートの展開です

?@シート名『入力シート』
 
?Aシート名『保存シート』
 
?B元データ
 

請求?bフ数字を?@のあるセルに入力してマクロボタンを押すと、
?Aの一覧表のセルA列にどんどん順番に保存されていくようにしたいと考えています。
?Bの元データは?AのA1に自動で転記されると他の関数で情報が反映していく仕組みです

いろいろ調べてたのですが、どうしてもボタンを押しても転記がうまくいきません。どうか教えていただけないでしょうか。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 >どうしてもボタンを押しても転記がうまくいきません。

 ・・と言うことは、曲りなりに(失礼)コードは書けているんですね?

 そのコードを提示できませんか? 無理にとは言いませんけど。

(半平太) 2019/12/21(土) 16:02


被っちゃったけどそのまま。

回答ではないですが・・・

■1
残念ながら私の環境だと一部文字化けしてしまっています。
ご自身の環境でも同じようになっていれば、直したほうがよいとおもいます。

■2
>いろいろ調べてたのですが、
どのようなことを調べて、どのようなコードを書いたのでしょうか?
提示頂いたほうが、状況の把握がしやすいです。

■2
>ボタンを押しても転記がうまくいきません。
どのようにうまくいかないのでしょうか?
・エラーがでるならどの箇所で、どのようなエラー(エラー番号、エラーメッセージ)がでる
・エラーにならないが、○○になるはずが××になる
などの情報をお伝えいただくと、アドバイスできることがあるかもしれません。

(もこな2 ) 2019/12/21(土) 16:07


ご返信ありがとうございます。
コードは書けていません、初心者本から別シートに転記するコードをまねてシート名や、転記するセルに書き換えて試した状況です。
しかもわけがわからなくなってしまい消してしまいました。
マクロもVBAも全くの初めてでどうしても自分で勉強して作成し挑戦してみたいと思いこちらに参加させていただきました。

文字化けの件、読みづらくてすみませんでした。
こちらで文字を入力している表示は問題なかったのですが、アップをしたら文字化けの表示になってしまいました、プレビューで直し方がわからずそのままの投稿となってしまい重ねてすみません。設定を確認してみます

下記の作業ができるシートを作成したいと考えています
ド素人の質問で本当にすみません。
どのようなコードを書いたらよいか教えてください
 
1 Sheet1名「入力フォーム」→請求no.の数字をC8のセルに入力→マクロボタン名「OK」を押す
2 Sheet2名「データ保存シート」→1の作業で入力した請求no.が次々A1、A2、A3…という状態で転記され保存されていく

どうかよろしくお願い致します。

(そら) 2019/12/21(土) 22:25


仰る「ボタン」がフォームコントロールなのかActiveXコントロールなのかわかりませんが、前者だとして、とりあえず動けばいいや〜という話なら、標準モジュールに
    Sub さんぷる()
        With Worksheets("データ保存シート")
            If .Range("A1") = "" Then
                .Range("A1").Value = Worksheets("入力フォーム").Range("C6").Value
            Else
                .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Value = Worksheets("入力フォーム").Range("C6").Value
            End If
        End With

    End Sub

みたいなコードを書いて、その「ボタン」に登録すれば目的は達成できるとおもいます。
・・がいろいろ端折ったので分かりづらいとおもいますので、研究用には向かないと思います。

研究する場合はほかの回答者さんのアドバイスを参考にしてみてください。

(もこな2 ) 2019/12/22(日) 05:17


もこな2様ご返信ありがとうございます。
フォームコントロールかActiveXコントロールかの意味もわからず本当にすみません。

マクロボタンを押すことでつぎの2点の作業が一度に終わるようにしたいです。
1.『保存シート』セルA列に順に請求no.が転記される
2.シートの保存

コードを登録してみます。
すみません、おそらくまたわからなくなりましたら質問させてください。
よろしくお願いします。
(そら) 2019/12/22(日) 13:26


>フォームコントロールかActiveXコントロールかの意味もわからず
こちらをどうぞ。
https://www.ipentec.com/document/office-excel-difference-between-form-control-and-activex-control

(もこな2 ) 2019/12/22(日) 14:34


もこな2様 重ねて教えていただいてありがとうございます。すみませんまた厚かましくも分からないことがでてきたら質問させてください。よろしくお願いします。

(そら) 2019/12/22(日) 19:47


何度も質問してすみません。
標準モジュールに教えていただいた内容をいれましたが→の行が構文エラーとメッセージがでます。
何か違うのでしょうか。
ボタンは動くのですが、転記がされない状況です。すみません、よろしくお願いしたします。

Public Sub Sample()

    'WorkBookオブジェクト格納用変数
    Dim objWbk As Workbook

    'ファイルBを開く
    Set objWbk = Workbooks.Open("C:\データ保存シート.xlsx")

    'ファイルAの内容をファイルBのセルに入力する
  → objWbk.Sheets("入力フォーム").Range("C8").Value = データ保存シート.Cells(A1; 1).Value

 Sub さんぷる()

        With Worksheets("データ保存シート")
            If .Range("A1") = "" Then
                .Range("A1").Value = Worksheets("入力フォーム").Range("C8").Value
            Else
                .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Value = Worksheets("データ保存シート").Range("C8").Value
            End If
        End With

End Sub

(そら) 2019/12/22(日) 23:37


>データ保存シート.Cells(A1; 1).Value
少なくともここがおかしいです。
セミコロンじゃないですし、
Cellsの中は、行,列 です。

(γ) 2019/12/22(日) 23:41


γさんの指摘に加えて、Sub〜End Subまでが一つのかたまりなので、Sampleを終わらせないまま、さんぷるを書いてはダメです。

(もこな2 ) 2019/12/23(月) 09:01


(γ)様,(もこな2)様返信ありがとうございます。
ご指摘どおりSampleを終わらせてさんぷるを書きました。
>データ保存シート.Cells(A1; 1).Value
このセルの行、列の書き方は(1,A1)になるということなのでしょうか。
どのように書いたらよいか教えてください。
ただこれにしても転記ができません。
ボタンは動きます。
マクロボタンの登録の内容がおかしいのでしょうか。
よろしくお願いします。

(そら) 2019/12/23(月) 23:31


おはよ〜ございます ^^
既にご回答、頂いていますが

A1のセルなら
シートのセル全体から見れば一行目の一列目なので、
Worksheets("データ保存シート").Cells(1, 1)  か
Worksheets("データ保存シート").Cells(1, "A") 等でも

>>マクロボタンの登録の内容がおかしいのでしょうか。
フォームコントロールか
アクティブエックスか
どちらか解りましたですか。
(隠居じーさん) 2019/12/24(火) 07:23


編集かぶっちゃったけどそのまま。

>このセルの行、列の書き方は(1,A1)になるということなのでしょうか。
>どのように書いたらよいか教えてください。

違います。
それだと、「A1」っていう変数になってしまい、定義(変数の宣言)してないから
Cells(1,0)になり、そのようなセルが存在しないので、実行時エラーになるとおもいます。

また、聞かれてませんが、

 誤 データ保存シート.Cells(A1; 1).Value
 正 Worksheets("データ保存シート").Cells(【行番号】, 1).Value

です。(提示の書き方だと「データ保存シート」っていう変数になってしまってます)

ところで、
「入力フォーム」「入力フォーム」は別ブックだったんですか?

(もこな2 ) 2019/12/24(火) 07:26


すみません↑タイプミスです。

「入力フォーム」「データ保存シート」は別ブックだったんですか?

でした。

(もこな2 ) 2019/12/24(火) 07:28


追加で。
>ご指摘どおりSampleを終わらせてさんぷるを書きました。
現状どのようになってますか?
私の想像どおりであれば、「Sample」と「さんぷる」が独立してるので、連携されず、どちらかのシートが見つからないっていう実行時エラーが出てると思いますが・・・

さらには、マクロを実行(ボタンを押す)たびに「データ保存シート.xlsx」を開くのでしょうか?

(もこな2 ) 2019/12/24(火) 07:54


隠居じーさん様セルの書き方を教えていただきましてありがとございます。
直してみます。
またマクロボタンはフォームコントロールです。

もこな2様 何度もご返信ありがとうございます。
「入力フォーム」と「データ保存シート」は同じフォルダにある別々のシートです。
仰る通り「Sample」と「さんぷる」が連携しておらず、ご指摘いただいたセルの書き方を修正しても転記されず、迷走しております。
また、「入力ホーム」に請求NO.を特定のセルに入力し、その下にマクロボタンを配置し、ボタン名は「OK」という名前でアイコンを表示し、一連の作業を実行させるには下記のコードでよいのでしょうか

Sub ボタン7_Click()
'
' OK_Click Macro

End Sub

素人すぎて本当にへんな質問ばかりしてすみません。
教えていただけるでしょうか。
どうぞよろしくお願い致します。

(そら) 2019/12/24(火) 10:33


今までどこぞで拾ってきたコードをコピペの継ぎはぎ専門の付けですな。
全く白紙の状態で、自分でプログラムを書けるようにしたらどうですか。
(決まった構文などは、コピペしても良いけど。デスクトップのパスとか他など)

超初心者が、なんでマクロだとそういう事が出来ると解るのが不思議なんだが?

(基礎の勉強したら!) 2019/12/24(火) 10:49


■1
えっと・・
 誤 「入力フォーム」と「データ保存シート」は同じフォルダにある別々のシートです。
 正 「入力フォーム」と「データ保存シート」は同じフォルダにある【別々のブックにある】シートです。

ということですかね。

■2
>〜また、「入力フォーム」に
間違っているとも、間違っていないとも言えます。
先にボタンを作って、マクロを記述しようとすると、デフォルトでそんな名前になりますね。
既に示しているように先にマクロを作ってから、【登録】するのであれば、そうはならないでしょう。(意図してそんな名前にしたなら別ですが)

■3
確認の答えが返って来てないので再度聞きますが、「データ保存シート」が存在するブックは、

 1.マクロを実行する前に手動で開いている
 2.マクロを実行する前には開いていない
 3.マクロを実行する時に開いているか、開いていないかは時々で違う

どれですか?

■4
↑と関連しますが、「データ保存シート」が存在するブックは、保存した後すぐに閉じるのですか?

■5
3と4の答えによっては、

 (1)ボタンを押す
 (2)「データ保存シート」が存在するブックを開く
 (3)データを転記する
 (4)「データ保存シート」が存在するブックを上書き保存する
 (5)「データ保存シート」が存在するブックを閉じる

ってことになりますが、普通は、何回かボタンを押すことを想定して

 【ボタンを押したときの処理】
 (1)「データ保存シート」が存在するブックが【開いていないときだけ】マクロを使って開く
 (2)データを転記する
 (3)「データ保存シート」が存在するブックを上書き保存する

 【別処理】
 (1)「入力フォーム」があるブックを閉じるときに「データ保存シート」があるブックが開いていたら保存せずに閉じる。

みたいになるとおもいます。

(もこな2 ) 2019/12/24(火) 11:06


(基礎の勉強したら!)様 ご返信ありがとうございます。ごもっともの意見かと思います。仕事でマクロ有効シートで作業することが多く、複雑なエクセル関数を扱うシートも多く、作業を少しでも減らしたいのでマクロをもう少し理解してみたいと思ったばかりで勉強不足ですみません。

(もこな2)様
説明不足ですみません。
また、丁寧な説明をいただいて本当にありがとうございます。
返信いただいた内容を整理して再度質問させてください
よろしくお願い致します。
(そら) 2019/12/24(火) 17:08


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.