アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記より質問させて頂いた内容の続きになります。(補足上限達した為)
https://oshiete.goo.ne.jp/qa/9768603.html

---------------------------------------------------------------------------------------------------------tatsu99さまよりご回答いただいた件、回答いたします。

>>№37で実行しましたところ、こちらで記載頂いたエラーがでました。。。
>では、本当に、指定されたファイルがないということになります。
>拡張子も含めて、合ってますか。
>管理シートでAAA.xlsm を指定し実際のファイルはAAA.xlsxだったなどということはないでしょう>>か。
→拡張子は相違ありません。

>もし、間違いなければ、
>あなたが指定したファイルが間違いなく存在するというエビデンス(証拠)の提示をお願いします。
>添付図の①のように、管理シートで、指定したD2,E2の内容の画像
>添付図の②のように、上記のファイルが存在するディレクトリに移動し、
>コマンドプロンプトで、dir を実行し、指定したファイル名が表示されることの確認。
>(特に、赤字で囲んだ箇所が、間違いないか確認し、その箇所を含んだ画像を提示しください)
>鮮明な画像の提示をお願いします。
>第三者がみれば、間違いに気づく可能性があります。
> 操作で不明な点があれば、補足ください。
→指定したファイルが表示されませんでした。
画像添付いたしますので、ご確認願います。
---------------------------------------------------------------------------------------------------------

「元データ(ピボッド)を開かずマクロで更新」の質問画像

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

  • コマンドプロンプトの画像添付いたします。
    ※すみません、PC情報となる箇所は黒く塗りつぶしています。

    「元データ(ピボッド)を開かずマクロで更新」の補足画像1
      補足日時:2017/06/07 11:36
  • №4で№5の質問をしております。
    文字数の兼ね合いでこちらに続きを記載いたします。

    ②の件
    実行時エラー’53’
    ファイルが見つかりません。

    '売上明細ブック名設定
    Uri_path = Jis_folder & "\" & Uri_book
    MsgBox ("ファイル名<" & Uri_book & ">") '追加①
    MsgBox ("フルパス名<" & Uri_path & ">") '追加②
    MsgBox (GetAttr(Uri_path)) '追加③

    No.5の回答に寄せられた補足コメントです。 補足日時:2017/06/08 17:16
  • ※コマンドプロントの画像添付します。

    「元データ(ピボッド)を開かずマクロで更新」の補足画像3
    No.15の回答に寄せられた補足コメントです。 補足日時:2017/06/09 10:07
  • サンプル画像添付します。

    「元データ(ピボッド)を開かずマクロで更新」の補足画像4
    No.24の回答に寄せられた補足コメントです。 補足日時:2017/06/14 15:54

A 回答 (26件中1~10件)

2点問題があります。


1)2016.xlsxを指定しているが、dir コマンドで表示された結果に 2016.xlsxが表示されていないことです。これでは、エビデンスになりません。
2)実績フォルダがデスクトップに作られています。その為、個人情報がはいり、それを塗りつぶしているため、
こちらでは、本当にそのフォルダか、わかりません。また、このフォルダは、空白を含んでいるため、正しくファイルを保持できません。(マクロでは空白を含むフォルダが指定されることを想定していません)

C:\TESTDIRまたはC:\TESTDIR\TEST
等のようにフォルダを作ってください。
そして、間違いなく、そのフォルダに移動し、2016.xlsxがdir コマンドで表示されることを確認してください。
    • good
    • 1

すみません。


>→指定したファイルが表示されませんでした。
これを見落としていました。
間違いなく、下記のディレクトリ下でdirコマンドを実行しましたか?
C:\users\XXX\DeskTop\Test\実績
(こちらでは、塗りつぶされているので確認できません)
もし、そうであれば、かならず、2016.xlsxが表示されるはずです。
    • good
    • 1
この回答へのお礼

うーん・・・

ご返信が遅くなり、申し訳ありません。

№1にて「C:\TESTDIR」というフォルダを作成いたしました。

>間違いなく、下記のディレクトリ下でdirコマンドを実行しましたか?
>C:\users\XXX\DeskTop\Test\実績
>(こちらでは、塗りつぶされているので確認できません)
>もし、そうであれば、かならず、2016.xlsxが表示されるはずです。
→申し訳ありません、ディレクトリ下なのですがコマンドでいろいろ調べたのですが
うまくできません。。。大変お手数ではございますが、ご教授頂けますでしょうか?

お礼日時:2017/06/07 14:37

No1の


>2)実績フォルダがデスクトップに作られています。その為、個人情報がはいり、それを塗りつぶしているため、
>こちらでは、本当にそのフォルダか、わかりません。また、このフォルダは、空白を含んでいるため、正しくフ>ァイルを保持できません。(マクロでは空白を含むフォルダが指定されることを想定していません)

上記の件ですが、念のため、こちらで、空白を含んだフォルダを作成し、そのフォルダで試験しました。結果は、正しく処理できました。(エラーにはなりませんでした)
よって、上記については、訂正いたします。(空白を含んだフォルダでも処理可能です)
しかしながら、運用時は、空白を含んだフォルダは、いろいろと
問題を起こしやすいので、使わないようにお願いします。
    • good
    • 1
この回答へのお礼

空白を含むフォルダの件、承知いたしました。

お礼日時:2017/06/07 14:39

No2のコメントの追加ですが、


C:\users\XXX\DeskTop\Test\実績 ではなく
C:\users\XXXのディレクトリ下でdirコマンドを実行しているように見えます。

C:\users\XXX\DeskTop\Test\実績 のディレクトリ下でdirコマンドを実行してください。
    • good
    • 1
この回答へのお礼

№5の件で質問です。
回答頂いたあと実行した際は、エラーが出ずに処理できたのですが下記エラーが出てしまいました。
-------------------------------------------------------------------------------------------------------
①下記モジュール記載した場合、2017で設定すると下記エラーができます。
※2016.xlsxで設定するとエラーは出ません。
☆実行時エラー’1004’
申し訳ございません。C:\TESTDIR\実績\2017.xlsxが見つかりません。名前が変更されたか、移動や削除が行われた可能性がありますとでます。

'売上明細ブック名設定
Uri_path = Jis_folder & "\" & Uri_book
MsgBox ("ファイル名<" & Uri_book & ">") '追加①
MsgBox ("フルパス名<" & Uri_path & ">") '追加②
' MsgBox (GetAttr(Uri_path)) '追加③→ここにエラーが出ます。
' If Dir(Uri_path, vbNormal + vbHidden) = "" Then
' MsgBox (Uri_path & "が存在しません")
' Exit Sub
' End If
Uri_book = "2017.xlsx" '追加④
Uri_path = "C:\TESTDIR\実績\2017.xlsx" '追加⑤

②下記モジュール記載した場合、下記エラーができます。
※もともと、これがエラーになってしまうので①をご教授頂いたと認識しています。

'売上明細ブック名オープン
Workbooks.Open Uri_path→ここにエラーがでます。
Workbooks(Uri_book).Activate
'ピボットデータ読み込み

※補足に続きを記載いたします。

お礼日時:2017/06/08 17:15

すみません。

これから出かけます。戻りは4時頃の予定です。
もし、解決しなければ明かなければ、直接、実績ファイル名を指定し、それを開くようにして、
とりあえず、試験をすすめたいと思います。
以下のように、してください。

'売上明細ブック名設定
Uri_path = Jis_folder & "\" & Uri_book
MsgBox ("ファイル名<" & Uri_book & ">") '追加①
MsgBox ("フルパス名<" & Uri_path & ">") '追加②
' MsgBox (GetAttr(Uri_path)) '追加③
' If Dir(Uri_path, vbNormal + vbHidden) = "" Then
' MsgBox (Uri_path & "が存在しません")
' Exit Sub
' End If
Uri_book = "2016.xlsx" '追加④
Uri_path = "C:\TESTDIR\2016.xlsx" '追加⑤

If MsgBox(trg_yyyy & "年" & trg_mm & "月の" & trg_mode & "を" & Uri_book & "から集計します", vbOKCancel) <> vbOK Then Exit Sub

追加③とIf DirからEnd if迄をコメントアウトします。
そして、④と⑤を追加します。
④は、実績ファイルのブック名
⑤は、実績ファイル・ブックの完全パス名
です。両方とも、正しく、記述してください。
正しければ、ブックがオープンできます。
誤っていれば、4,5行あとのところの
'売上明細ブック名オープン
Workbooks.Open Uri_path
の箇所で、エラーがはっせいします。その場合は、ブックの完全パス名
を正しく見直して、設定してください。
この回答への補足あり
    • good
    • 1
この回答へのお礼

うーん・・・

ご教授頂きましてありがとうございます。
下記、質問させてください。

> 以下のように、してください。
>'売上明細ブック名設定
※中略省略させていただきます。

>追加③とIf DirからEnd if迄をコメントアウトします。
>そして、④と⑤を追加します。
>④は、実績ファイルのブック名
>⑤は、実績ファイル・ブックの完全パス名
>です。両方とも、正しく、記述してください。
> 正しければ、ブックがオープンできます。
> 誤っていれば、4,5行あとのところの
>'売上明細ブック名オープン
>Workbooks.Open Uri_path
>の箇所で、エラーがはっせいします。その場合は、ブックの完全パス名
>を正しく見直して、設定してください。
→ご教授頂きましてありがとうございます。ファイル指定で今回ご教授頂いたマクロでは無事エラーが出ず集計できました。
ただ、最後までエラーなく集計できたと思ったのですが中身を確認しましたところ特定の集計条件分しか集計できておりませんでした。
ちなみに確認しましたところピボッドの各部の新規列が1か(空白)という表示になっております(元データに数式が入っている列の為?)
それが原因なのでしょうか?
※ちなみに、前年に関しては現在マクロ上””となっておりますが既存のみなので(空白)をカウントするようになりますでしょうか?

お礼日時:2017/06/07 16:12

→ご教授頂きましてありがとうございます。

ファイル指定で今回ご教授頂いたマクロでは無事エラーが出ず集計できました。
回答:とりあえず、その方法で今後作業を進めてください。
他の問題点が全て解決したのち、改めてこの問題に取り組みましょう。

>ただ、最後までエラーなく集計できたと思ったのですが中身を確認しましたところ特定の集計条件分しか集計できておりませんでした。
回答:具体的には、どの項目が集計できて、どの項目が集計できなかったのでしょうか。

>ちなみに確認しましたところピボッドの各部の新規列が1か(空白)という表示になっております(元データに数式が入っている列の為?)
>それが原因なのでしょうか?
回答:新規列が1であれば、実績の新規 に集計されます。
新規列が空白であれば、実績の既存 に集計されます。

>※ちなみに、前年に関しては現在マクロ上””となっておりますが既存のみなので(空白)をカウントするようになりますでしょうか?
回答:はい、カウントします。
集計項目で前年を指定すれば、新規列が空白のもののみを集計します。

ちなみに、処理時間はどのくらいかかりましたか?(本番データと異なる場合は、その旨も教えてください)
    • good
    • 1
この回答へのお礼

ご返信が遅くなり申し訳ありません。
下記、回答いたします。

>>→ご教授頂きましてありがとうございます。ファイル指定で今回ご教授頂いたマクロでは無事エラーが出ず集計できました。
>回答:とりあえず、その方法で今後作業を進めてください。
>他の問題点が全て解決したのち、改めてこの問題に取り組みましょう。
→承知いたしました。お手数をおかけいたしますが引き続き宜しくお願いいたします。

>>ただ、最後までエラーなく集計できたと思ったのですが中身を確認しましたところ特定の集計条件分しか集計できておりませんでした。
>回答:具体的には、どの項目が集計できて、どの項目が集計できなかったのでしょうか。
→既存の「(空白)」をカウントしていない為、うまく集計できていないようです。

>>ちなみに確認しましたところピボッドの各部の新規列が1か(空白)という表示になっております(元データに数式が入っている列の為?)
>>それが原因なのでしょうか?
>回答:新規列が1であれば、実績の新規 に集計されます。
>新規列が空白であれば、実績の既存 に集計されます。
→ご回答いただいた内容からすると""、空白ではなく(空白)なので集計されないようですね。

>>※ちなみに、前年に関しては現在マクロ上””となっておりますが既存のみなので(空白)をカウントするようになりますでしょうか?
>回答:はい、カウントします。
>集計項目で前年を指定すれば、新規列が空白のもののみを集計します。
→上記に同じくということですね。。。

>ちなみに、処理時間はどのくらいかかりましたか?(本番データと異なる場合は、その旨も教えてください)
→テストとして2ファイルで処理をしましたが、29.51563秒でした。

お礼日時:2017/06/08 10:12

>ピボッドの各部の新規列が1か(空白)という表示になっております


この(空白)という意味は、何も表示されていないという意味であれば、既存の集計対象です。
添付図でA1が集計対象、A2,A3は集計対象外です。
「元データ(ピボッド)を開かずマクロで更新」の回答画像7
    • good
    • 1
この回答へのお礼

うーん・・・

おっしゃる通り、””、空白どちらでもなく「(空白)」で表示されております。
この表記を空欄””とするか「(空白)」とするか?ということになりますでしょうか?

お礼日時:2017/06/08 10:15

集計条件として参照する列の値ですが、(3部集計時のG列、H列の値等)


G列は、1,2,3,4,等が①②AB等の項目の集計時の条件
H列は、1が新規集計時の条件
になっていますが、これらは、数値として格納されていることが前提です。
文字として格納されていた場合は、集計対象になりません。
添付図はG列が数値として格納、H列が文字として格納した状態を示しています。
もし、文字として格納しているなら、その旨下さい。(マクロの修正が必要になります)
「元データ(ピボッド)を開かずマクロで更新」の回答画像8
    • good
    • 1
この回答へのお礼

ご質問頂きありがとうございます。
確認しましたところ、数値での表記になっております。

お礼日時:2017/06/08 10:14

>おっしゃる通り、””、空白どちらでもなく「(空白)」で表示されております。


"(空白)"の文字が表示されているということですか?
それであれば、
ws.Cells(10, col).Value = GetValue(HON3sheet, "I", "G", "3", "H", "", HON3dicT, HON3Rows) 'A既存

ws.Cells(10, col).Value = GetValue(HON3sheet, "I", "G", "3", "H", "(空白)", HON3dicT, HON3Rows) 'A既存

のように修正して下さい。(他の既存も同様です)

尚、(空白)の両端の()が全角なのか半角なのかこちらではわかりませんので、そこは同じように合わせてください。
    • good
    • 1
この回答へのお礼

うーん・・・

ご返信頂きましてありがとうございます。(空白)の既存の部分は修正したところ正しく集計できるようになりました。ご教授頂き、ありがとうございます。
ただ、下記の部分が正しく処理されません。こちらも(空白)が原因でしょうか?何卒、ご教授願います。

'個人シートに値の設定を行う
  '3部集計'
ws.Cells(8, col).Value = GetValue(HON3sheet, "I", "G", "1", "", "", HON3dicT, HON3Rows) '①
ws.Cells(9, col).Value = GetValue(HON3sheet, "I", "G", "2", "", "", HON3dicT, HON3Rows) '②
ws.Cells(19, col).Value = GetValue(HON3sheet, "I", "G", "6", "", "", HON3dicT, HON3Rows) 'D
ws.Cells(20, col).Value = GetValue(HON3sheet, "I", "G", "7", "", "", HON3dicT, HON3Rows) 'E
ws.Cells(21, col).Value = GetValue(HON3sheet, "I", "G", "8", "", "", HON3dicT, HON3Rows) 'F
'2部集計
ws.Cells(31, col).Value = GetValue(HON2sheet, "H", "B", "4", "", "", HON2dicT, HON2Rows) 'J
ws.Cells(32, col).Value = GetValue(HON2sheet, "H", "B", "5", "", "", HON2dicT, HON2Rows) 'K
ws.Cells(33, col).Value = GetValue(HON2sheet, "I", "B", "6", "", "", HON2dicT, HON2Rows) 'L

お礼日時:2017/06/08 11:35

'3部集計'


ws.Cells(8, col).Value = GetValue(HON3sheet, "I", "G", "1", "", "", HON3dicT, HON3Rows) '①
ws.Cells(9, col).Value = GetValue(HON3sheet, "I", "G", "2", "", "", HON3dicT, HON3Rows) '②
ws.Cells(19, col).Value = GetValue(HON3sheet, "I", "G", "6", "", "", HON3dicT, HON3Rows) 'D
ws.Cells(20, col).Value = GetValue(HON3sheet, "I", "G", "7", "", "", HON3dicT, HON3Rows) 'E
ws.Cells(21, col).Value = GetValue(HON3sheet, "I", "G", "8", "", "", HON3dicT, HON3Rows) 'F
'2部集計
回答:
ピボットのG列の1,2,6,7,8が文字列になっていませんか。念のため確認をお願いします。
空白は関係ありません。(そもそも、H列をみないので)

ws.Cells(31, col).Value = GetValue(HON2sheet, "H", "B", "4", "", "", HON2dicT, HON2Rows) 'J
ws.Cells(32, col).Value = GetValue(HON2sheet, "H", "B", "5", "", "", HON2dicT, HON2Rows) 'K
ws.Cells(33, col).Value = GetValue(HON2sheet, "I", "B", "6", "", "", HON2dicT, HON2Rows) 'L
回答:
ピボットのB列の4,5,6が文字列になっていませんか。念のため確認をお願いします。
    • good
    • 1
この回答へのお礼

書式設定を開くと一番上の「標準」になっています。

お礼日時:2017/06/08 14:05

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