どなたかにご教示頂きたいのですが
まず、やりたいこととして
・別のExcelファイルを開いてその中の指定したシートを別シートに保存する
・セルの値を0クリアする
の2点です、まず別のエクセルファイルを開くところで躓いているのですが
具体的なコードは
Sub ファイルを開く()
' ファイルを開く Macro
' Excelファイルを開きます
Application.Goto Reference:="ファイルを開く"
Sub ExcelFileName()
Dim myOldFile As Variant
Dim Response As Integer
Dim myName As String
Response = MsgBox("Excelファイルを選択してください。", vbOKCancel + vbInformation, "データ移行")
If Response = vbOK Then
'開いたファイルのパスと名前を取得
myOldFile = Application.GetOpenFilename("Excelファイル (*.xls;*.xlsm),*.xls;*.xlsm")
If myOldFile = False Then Exit Sub
Else
Exit Sub
End If
'ファイル名
myName = Mid(myOldFile, InStrRev(myOldFile, "\") + 1)
MsgBox myName
End Sub
このように書いています、しかしこれではExcelファイルは選択できませんでした。
あと列1行1のセルにボタンを作ってそこから起動するようにしたいのですがボタンの作り方がわかりません。
特定の列の数値を0にする、まではまだ考えてないのですがどうすればいいのでしょうか?
No.1ベストアンサー
- 回答日時:
>しかしこれではExcelファイルは選択できませんでした。
ファイルは選択できると思うのですが、開き方がわからないのでは?
とりあえず
MsgBox myName
を
Application.Workbooks.Open myName
にしてみてください。
・別のExcelファイルを開いてその中の指定したシートを別シートに保存する
Sheets.Add After:=ActiveSheet
myName = Mid(myOldFile, InStrRev(myOldFile, "\") + 1)
Application.Workbooks.Open myName
Cells.Copy
ThisWorkbook.Activate
ActiveSheet.Cells.Select
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks(myName).Close
こんな感じでしょうか。
・セルの値を0クリアする
この意味も分からないのですが
コピーしたシートのUsedRange で0を 空白にするのであれば
Dim r As Range
For Each r In ActiveSheet.UsedRange
If r.Value = 0 Then r.Value = ""
Next
を最後に実行してみてください。
No.2
- 回答日時:
こんにちは。
ちょっと、流れを読んでいたのですが、コードは、見よう見まねというところでしょう。
ただ、ご質問の内容の流れを、完全にマクロ上で再現するには、UserForm上ではないと、できないはずです。
Workbookを開くまではよいにしても、その先、マクロを一旦離れて、任意のシート指定をする方法は、ありません。シート名や位置が決まっていれば、そのまま可能ですが、そこらが煮詰まっていないというところでしょうか。
なお、
myOldFile = Application.GetOpenFilename("Excelファイル (*.xls;*.xlsm),*.xls;*.xlsm")
myName = Mid(myOldFile, InStrRev(myOldFile, "\") + 1)
こう繋がるのは、カレントディレクトリにある場合のみですが、わざわざ、このようなことをする必要はありませんね。
>Sub ファイルを開く()
>' ファイルを開く Macro
>' Excelファイルを開きます
>Application.Goto Reference:="ファイルを開く"
>End Sub
まさか、Ver.4 マクロではないでしょう?
Application.Goto は、セル位置に飛ぶ場合です。
Call マクロ名、または、そのまま、マクロ名を呼び出します。(基本的には、標準モジュールで、Private キーワードがついていないマクロの場合に限ります。)
>ボタンの作り方がわかりません。
開発タブの挿入のフォームコントロールの中から、ボタンを選んで、セル上でドラッグすれば、ボタンになりますから、後は、ダイアログが出ていましたから、一旦、閉じてしまって、マクロを書いてから当たらに登録してください。
列の数値を0にするというのは、
数値があれば、それらは全部0にするなら、こうなります。Error トラップも含めてください。
On Error Resume Next
ActiveSheet.Columns(1).SpecialCells(xlCellTypeConstants, xlNumbers).Value = 0
On Error GoTo 0
>その中の指定したシートを別シートに保存する
よく意味が分かりませんが、同じブックの右に、新しいシートとしてコピーするなら、
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
というところでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA EXCELファイル選択⇒指定セ...
-
イベントマクロによるHyperLink
-
エクセルファイルを開く時、関...
-
ファイル名を変更するマクロ
-
フォルダ内のexcelファイルを順...
-
エクセル(マクロ)のファイル...
-
ファイルを開かずにマクロを実行
-
ファイルの保存場所を変えたら...
-
ISOファイルとMDSファイル
-
ccdファイルはどのようにして使...
-
イーファンビューでwebpファイ...
-
差し込み印刷の元データファイ...
-
生鮮MDシステムについて。
-
USBメモリー上の MP4 ファイル...
-
Chromebookを使用しています。 ...
-
PCで作ったwordをスマホで編集...
-
dviファイルをwindows上で見る...
-
削除してしまったThunderbirdメ...
-
USBの読み取り専用を解除する方法
-
テキストデータでNULL?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
【マクロ】名前を保存する際に...
-
ファイルを開かずにマクロを実行
-
【Excel VBA】ファイル名が一...
-
フォルダ内のブック全部にパス...
-
フォルダ内のexcelファイルを順...
-
エクセルのシートの数を数えた...
-
VBAでワークブックの名前を変数...
-
データ参照先が別ファイルの場...
-
エクセル(マクロ)のファイル...
-
vlookup関数の引数を変数で指定...
-
エクセル 複数ファイルの一括...
-
ファイルの保存場所を変えたら...
-
accessフォルダを移動したらフ...
-
リンク切れチェックを行うマクロ
-
EXCELマクロを無効にして開く方法
-
Accessのaccdbファイルを起動で...
-
エクセルのxls形式からxlsx形式...
-
エクセルマクロ 異なるファイ...
おすすめ情報
開いたシートのセルに数字が入力されているのですが
これを0にするという意味です。
書き方が悪かったようですね、申し訳ありません。
https://oshiete.goo.ne.jp/qa/9131023.html
補足が長くなりすぎたためこちらで改めて質問させて頂きました。
もしよろしければアドバイスを頂きたいです。
よろしくお願いいたします。