質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

3566閲覧

ファイルによって、転記にばらつきが出てしまう

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2018/01/12 07:41

###前提・実現したいこと
前回の質問(https://teratail.com/questions/102850)で習得させていただいたデータ転記の方法で、異なるエクセルデータ郡の取り込みを試しています。

###発生している問題・エラーメッセージ
順調に転記できるようになったと思いましたが、
転記元のファイルによって、転記されるデータにばらつきが出てしまっております。

転記元は下記のようなデータです。
うまくいくと、B37:M42まで転記されるのですが、
例えば、B37:M39までの一部しか転記されないファイルが出てきました。
イメージ説明

セル範囲の指定をいろいろ変更してみたのですが、うまく実行できません。
修正のヒントをいただけると幸いです。
よろしくお願いいたします。

###該当のソースコード
Option Explicit

Sub 見積り転記()
'前提条件
'- 転記元のシートを前面に表示していること
'- 転記先のシートがこのマクロが書かれいるブックであること

If Excel.ThisWorkbook Is Excel.ActiveWorkbook Then Stop '転記先と転記元が同じブック Exit Sub End If '転記元のシートを取得 'Excelで今アクティブなシート Dim copyWs As Excel.Worksheet Set copyWs = Excel.ActiveWorkbook.ActiveSheet '転記先のシートを取得 'マクロが書かれているブックの、アクティブなシート Dim pasteWs As Excel.Worksheet Set pasteWs = Excel.ThisWorkbook.ActiveSheet '入力する空白セルの指定 Dim pasteCell As Excel.Range '元の処理の`InputRow`に相当する場所のセル Set pasteCell = pasteWs.Cells(pasteWs.Rows.Count, "A").End(xlUp).Offset(1) 途中省略 '該当部分→作業内容~金額'を開いている転記元からコピーして転記先にペースト Set pasteCell = pasteWs.Cells(pasteWs.Rows.Count, "D").End(xlUp).Offset(1) Dim sagyokingakuCell As Excel.Range With copyWs Set sagyokingakuCell = _ .Range( _ .Range("B37:M37"), _ .Range("B37:M37").End(xlToRight).End(xlDown) _ ) End With 'copyWs sagyokingakuCell.Copy pasteCell.PasteSpecial Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=False, _ Transpose:=False

End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コードが読みにくいです。
</>ボタンを使ってください。
また、インデントを調整して見やすく整形してください。

で、原因の箇所は十中八九、以下の箇所でしょう。

VBA

1Set sagyokingakuCell = .Range(.Range("B37:M37"), _ 2                .Range("B37:M37").End(xlToRight).End(xlDown))

うまくいかないシートで、
上記の操作を、キー操作で再現してみると、
何か分かると思います。

頑張ってください。

投稿2018/01/15 00:37

ExcelVBAer

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/19 02:53

早速のご回答ありがとうございました! お礼が遅くなり恐縮です。 調べてみたのですが、「キー操作で再現」が具体的にどのように検証してよいのか理解できず、解決できずにいます。 今ひとつヒントいただけましたら幸いです。 よろしくお願いします。
ExcelVBAer

2018/01/19 04:06

.End(xlToRight) → セル上で Ctrlキーを押し、そのまま矢印キー「→」 .End(xlDown) → セル上で Ctrlキーを押し、そのまま矢印キー「↓」 覚えておくと便利です。
退会済みユーザー

退会済みユーザー

2018/01/19 04:25

ご返信ありがとうございます! ショートカットのことだったのですね! やってみます、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問