Excel総合相談所 135

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@そうだ選挙にいこう2019/05/02(木) 08:46:03.35
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

前スレ
Excel総合相談所
https://find.5ch.net/search?q=excel

Excel VBA 質問スレ
https://find.5ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80

0952名無しさん@そうだ選挙にいこう2019/07/27(土) 16:19:00.66
>>949
すごいね、たったこれだけのことで
相手の素性が分かっちゃうモノホンのエスパーさんだったとは…

俺も少しばかりそのエスパーの心得ってのがあったから
>>943をゴミカスクズ糞汚物扱いしてやったんだけど
これってお前が言ってることと何か違うの?


もしかしてとは思うけど…その…アナタ…


.....、......オクス..リ.、、、


........ とか..キメ.......たり....してませんよね?;


なんかね、少し...ちょっと.....思っただけ...なんですけど…^^;;;;;;



>>950
そうだったんですね
ま誰にも間違いはありますから
次スレ建ててから死んでくださいね

0953名無しさん@そうだ選挙にいこう2019/07/27(土) 16:26:23.67
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 コピペだけ
【4 VBAでの回答の可否】  可


https://dotup.org/uploda/dotup.org1906896.jpg.html

↑のような表があって、G列に担当者名が入っているのですが


https://dotup.org/uploda/dotup.org1906899.jpg.html

↑のように担当者名だけ各表のA列の先頭にコピペするコードを教えてください。

0954名無しさん@そうだ選挙にいこう2019/07/27(土) 16:32:35.66
>952
>相手の素性が分かっちゃうモノホンのエスパーさんだったとは…
>俺も少しばかりそのエスパーの心得ってのがあったから
ってかこのスレなら数文字で伝わるでしょ

>>943をゴミカスクズ糞汚物扱いしてやったんだけど
それに意味がない

>その・・ | .....オクス..リ.、、
三点リーダと半角読点、句読点、他諸々統一しないとダメ
自分に自信がなさすぎる。そんな事では
「あれ、この人こそ統一性のない人なのかな?」と思われるだけ
殺したいときはもっと殺意をもって発言、過ちが気になるだけなら端的にレス

0955名無しさん@そうだ選挙にいこう2019/07/27(土) 16:34:12.36
>>953
A2=G4
これをコピペしていけばいいんじゃないの

0956名無しさん@そうだ選挙にいこう2019/07/27(土) 16:36:50.74
>>952
どうしても教えて欲しい事がある
>>943をゴミカスクズ糞汚物扱いしてやった
これはどういう感情なの?
俺も恐らく発達障害だから、君の気持ちが良くわからないんだ

「ゴミカスクズ糞汚物扱いしてやった」
ことで君は自分の承認欲求が満たされたり、
人間のランク的な物が上がったりするの?

まぁ別に答えなくてもいいよ、これはただの俺の知識の一つになるだけだ

0957名無しさん@そうだ選挙にいこう2019/07/27(土) 16:36:54.46
>>953
こういう質問は答えにくい。
やりたいことの一例が上がっているだけなので。

その3つの表だけでいいのか、沢山ある表を処理したいのか。同じ表の担当者は必ず同一なのか、そうでない場合があるのか。

VBA使わずに、A2に=G4 と入力して、それをA10と、A14にペーストすれば良いのでは?

0958名無しさん@そうだ選挙にいこう2019/07/27(土) 17:05:05.08
>>957

すみません説明不足でした

・画像では3例の表ですが、実際は300件以上あります。

・各表は必ず同一の担当者です。

・表と表の間の行数は一定ではありません

・毎日件数が多くなるためVBAで処理したいです

0959名無しさん@そうだ選挙にいこう2019/07/27(土) 17:28:45.39
>>953
>>958

Sub foo()
最終行 = Cells(Rows.Count(), 7).End(xlUp).Row
For i = 1 To 最終行
If Cells(i, 1).Value = "納品日" Then
Cells(i - 1, 1).Value = Cells(i + 1, 7).Value
End If
Next
End Sub

飲みながらだとこういう単純なのが意外とキツイなw
>>952君は回答ないけど、無理なのかな?

0960名無しさん@そうだ選挙にいこう2019/07/27(土) 17:29:38.83
一応言っておくと一行目のA7に「納品日」があるとエラーになるけどそれはなんの分岐もしていないぞ

0961名無しさん@そうだ選挙にいこう2019/07/27(土) 17:33:39.09
>>959
こんな一瞬でできるようなのがキツいとか
こんなハゲとはいっしょに飲みに行きたくないな

0962名無しさん@そうだ選挙にいこう2019/07/27(土) 17:39:02.65
お、なんだなんだ
文句だけ付けて自分は何も案出さないという職場で最も嫌われる典型がやってきたぞ

0963名無しさん@そうだ選挙にいこう2019/07/27(土) 17:39:45.56
>>961
むしろハゲにする方法教えろ
今脱毛してるんだけど、あごひげだけ脱毛終わらないんだよ
脇とか色々終わった

0964名無しさん@そうだ選挙にいこう2019/07/27(土) 17:42:03.27
いつもならvbaのコード最適化しろやっていうとこだけどお前より俺の能力の方が高いからどうでもいいわ
マジであごひげなくならねぇ
乳毛も脇毛もなくなったけど肝心のあごひげなくならないんだよどうすりゃいんだよ

09659502019/07/27(土) 17:43:16.99
スレの立て方が分かりません。…

もっと有益な会話をしたいです!VBA初心者の方いませんか?

0966名無しさん@そうだ選挙にいこう2019/07/27(土) 17:46:59.78
>>965
代わりに建てるから気にする名

0967名無しさん@そうだ選挙にいこう2019/07/27(土) 17:47:48.14
はい次スレ

Excel総合相談所 136
https://mevius.5ch.net/test/read.cgi/bsoft/1564217249/l50

0968名無しさん@そうだ選挙にいこう2019/07/27(土) 17:51:39.13
>>965
いねーよ、ここは達人の集まりだ

vbaってのは要するにExcel作業の自動化

Excelで手作業を繰り返している会社なら英雄になる
「a1とb1をc1に自動的に出すだけ。それが100シート」

ただし、多大な損失が生じる可能性がある
「言い忘れたけど合計が偶数になると別ブックに転記する必要があるんだよね〜」

逆に、そもそもExcelを使わない大企業では意味がない

0969名無しさん@そうだ選挙にいこう2019/07/27(土) 19:43:38.31
>>965
ここは質問スレであって会話なら雑談スレいけ
質問に関連する事ならいいが、脱線しすぎは迷惑になる

>>966
カッコいい!そしてスレ立てthx

09709652019/07/27(土) 20:12:37.14
雑談スレいくわ。すまんかったね。

ありがとうございます!

0971名無しさん@そうだ選挙にいこう2019/07/28(日) 16:17:31.33
あと30レス雑談してから消えろよw

0972名無しさん@そうだ選挙にいこう2019/07/28(日) 16:45:43.44

09739652019/07/28(日) 17:35:47.51
>>971
消えないよ!

0974名無しさん@そうだ選挙にいこう2019/07/28(日) 18:21:15.26
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 中級
【4 VBAでの回答の可否】 可

あるシートを新規別ブックにコピーしてそれにファイル名をつけて保存する、ということを
やりたくて試行錯誤しています。
一応、コピーして保存はできたのですが、元シート上にあるコマンドボタンまでコピーされて
しまいます。
コマンドボタンをコピーさせない方法ってないでしょうか?

今は
mySt.Copy
ActiveWorkbook.SaveAs ****
という単純なコードです。これを書き換えて、コマンドボタン以外だけをコピーとしたいです。

よろしくお願いいたします。

0975名無しさん@そうだ選挙にいこう2019/07/28(日) 18:29:17.22
>>974
mySt.Copyの次の行にボタン削除を入れる
シートコピーと言うのはシート自体をコピーするんだからそこにあるものは当然全てコピーされる

0976名無しさん@そうだ選挙にいこう2019/07/28(日) 19:49:22.01
>>975
具体的には
activesheet.Shapes.range("Button 1").delete


For Each eShape In ActiveSheet.Shapes
eShape.Delete
Next

を入れとく

0977名無しさん@そうだ選挙にいこう2019/07/28(日) 19:59:54.80
>>976の下のやつはボタン以外も消える

0978名無しさん@そうだ選挙にいこう2019/07/28(日) 20:08:29.47
そうだね
ボタン名がはっきりわかってピンポイントで消したいなら上で
なんでもいいからデータだけ残したいの!という場合は下

0979名無しさん@そうだ選挙にいこう2019/07/28(日) 20:19:14.40
いや、数が少ないなら上、多いならForでボタンだけ消せばよい

0980名無しさん@そうだ選挙にいこう2019/07/28(日) 20:33:42.05
Forで回してShapeがボタンかの判定を入れたらもっといいね
初心者だとしたらコピー後のボタン名をちゃんと調べられるかなと思って下のも用意した
あれ?!俺はどうやって調べたんだっけ もう忘れたw

0981名無しさん@そうだ選挙にいこう2019/07/28(日) 20:53:20.47
>>976よく見たら上も間違ってるわ
ともかく数が少ないなら直指定でもいいし、多い又はとにかく全部消したいならForで回せばいい

0982名無しさん@そうだ選挙にいこう2019/07/29(月) 22:23:32.82
>>974
新規ブックにコピーディスティネーションじゃダメなんかい!

0983名無しさん@そうだ選挙にいこう2019/07/30(火) 12:30:18.26
>>982
それだとセルデータしかコピれないよ

0984名無しさん@そうだ選挙にいこう2019/07/30(火) 20:42:34.50
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 入門中
【4 VBAでの回答の可否】 不可

教えてください。

B列に日付、C列からH列まで、品目ごとの買物金額が入力されている100行くらいの表があるとします。

A1に日付を入力すると、A2に、その日の買物の合計金額が出るようにしたいです。
=SUMIF(B1:B100,A1,C1:H100)

これではダメみたいなんです。どうすればいいでしょうか?

0985名無しさん@そうだ選挙にいこう2019/07/30(火) 21:03:06.77
>>984
マイクロソフトのサイトのSUMIF関数の解説のページ
https://support.office.com/ja-jp/article/sumif-%E9%96%A2%E6%95%B0-169b8c99-c05c-4483-a712-1697a653039b
を見てもらうとわかります。条件となるセル範囲がB1:B100、つまり1列×100行を指定した場合は、
合計範囲をC1:H100(つまり6列×100行)と設定しても、実際に合計の対象となるのは1列×100行となる
C1:C100だけになるはず。
よって、=SUMIF(B1:B100,A1,C1:C100)+SUMIF(B1:B100,A1,B1:B100)+ と、SUMIF関数を6個連ねるのが正解。

09869852019/07/30(火) 21:06:33.45
>>985の続き
もし、B列に日付の重複がないことが確実であるならば、日付の一致する行のC列〜H列の合計を
出すとして、SUMIF関数を使わず、SUM関数、OFFSET関数、RESIZE関数を組み合わせて
できそうだけど、ただいま試行錯誤中。

0987名無しさん@そうだ選挙にいこう2019/07/30(火) 21:16:12.79
>>984
=SUMPRODUCT((B1:B100=A1)*C1:H100,)

0988名無しさん@そうだ選挙にいこう2019/07/30(火) 22:16:36.90
カンマがいらないと思うんだがバージョンが違ったらそれでも動くんか

しかしsumproductを使ったらsumifもcountifも無駄な知識だなと思ったが
この二つはワイルドカードが使えるというアドバンテージがあるんだな

0989名無しさん@そうだ選挙にいこう2019/07/30(火) 22:21:24.77
>>987の後ろのカンマはゴミ
タッチミスかなんか

0990名無しさん@そうだ選挙にいこう2019/07/30(火) 22:43:58.41
やっぱsumproductって凄えや

0991名無しさん@そうだ選挙にいこう2019/07/30(火) 23:56:29.86
>>985-989
ご親切に教えていただきとてもありがとうございました。

0992名無しさん@そうだ選挙にいこう2019/07/31(水) 00:32:11.04
よく関数思いつくよなー。凄いわ。

09939852019/07/31(水) 07:24:09.53
SUMPRODUCTでこんなこともできるのね。
”正解”などと書いた自分が恥ずかしい orz

0994名無しさん@そうだ選挙にいこう2019/07/31(水) 07:58:29.01
SUMPRODUCTは便利だけど直感的組める配列数式使っちゃうことが多いわ

0995名無しさん@そうだ選挙にいこう2019/07/31(水) 12:43:07.38
よろしくお願いします。

あるブックの2つのシートに、1つずつ表があります。

どちらの表にも同じ「会員番号」という列があるのですが、
これをもとに、
・AシートとBシートの両方に入っている人
・Aシートにしか入っていない人
を一目でわかるようにしたいです。
なにかいい方法はないでしょうか?

0996名無しさん@そうだ選挙にいこう2019/07/31(水) 13:15:23.34
一目でわかるようにするの意味がハッキリしないが
VBA使わないと面倒だと思う

0997名無しさん@そうだ選挙にいこう2019/07/31(水) 15:36:20.30
>>995
作業列を使うか、「会員番号」の列に対する条件付き書式でいけると思う。
どちらのシートも 会員番号の列はB列 と仮定して、

作業列を使う方法→Aシートの作業列をC列と仮定→AシートのC2セルに計算式
=COUNTIF(SheetB!$B:$B,B2)
と入力して、下方向に必要なセル範囲までドラッグコピーする。
シートBにも存在する会員番号があれば、その個数がC列に表示される。なければ0が表示される。

条件付き書式を使う方法(条件は上に同じ)シートBにも同じ会員番号があるとき、当該セルを黄色塗りつぶす場合
B2〜B列の最下行までのセル範囲を選択する→条件付き書式→新しいルール→数式を使用して〜
→数式の欄に =COUNTIF(SheetB!$B:$B,B2)>0 と入力→[書式]ボタンをクリック→
塗りつぶしのタブをクリック→黄色を選択→[OK]をクリック→[OK]をクリック→[適用]をクリック→[OK]をクリック
黄色になってないセルの会員番号はシートBには存在しないということを示します。

こんなのでいかが?ただし、この設定だけでは「Bシートにしか入ってない人」はわかりません。

0998名無しさん@そうだ選挙にいこう2019/07/31(水) 15:55:51.14
うめ

0999名無しさん@そうだ選挙にいこう2019/07/31(水) 15:55:56.51
うめ

1000名無しさん@そうだ選挙にいこう2019/07/31(水) 15:56:04.80
うめ

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 90日 7時間 10分 2秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。