Excel総合相談所 136 at BSOFT
[2ch|▼Menu]
[前50を表示]
250:名無しさん@そうだ選挙にいこう
19/08/18 01:30:00.41 .net
>>249
B1=IF(AND(A1>=25,A1<=75),"ok","")
&IF(AND(A1>=26,A1<=30),"注意","")
&IF(AND(A1>=80),"NG","")
&IF(AND(A1<=30),"NG","")
27だとok注意ngとなったけどまぁええか
優先順位が良く分からん

251:名無しさん@そうだ選挙にいこう
19/08/18 01:45:06.31 .net
>>249
26や27は「25〜75」「26〜30」「30未満」の全部の条件に当てはまるけど、どうすんの?

252:248
19/08/18 02:07:14.04 .net
間違えました
規格 50±30
ACT 50±25
になります
A1に数値を入力してB1に任意のコメントを表示させる方法を教えてください
A1に入力した値が25以上〜75以下ならB1にOK
A1に入力した値が25未満〜20以上、75より大きい〜80以下ならB1に注意
A1に入力した値が20未満、80より大きいならB1にNG
と表示させたいです

253:名無しさん@そうだ選挙にいこう
19/08/18 02:14:20.01 .net
>>252
規格とかactの行は読み飛ばすとして
B1=IF(AND(A1>=25,A1<=75),"ok","")
&IF(AND(A1>=20,A1<25),"注意","")
&IF(AND(A1>75,A1<=80),"注意","")
&IF(AND(A1>80),"NG","")
&IF(AND(A1<20),"NG","")

254:名無しさん@そうだ選挙にいこう
19/08/18 04:52:19.00 .net
2016ならIFSを使えたのにね

255:名無しさん@そうだ選挙にいこう
19/08/18 09:44:59.59 .net
>>239
上から下じゃなくて、下から上なら大丈夫、という話じゃなくて?

256:248
19/08/18 11:35:15.85 .net
>>253
ありがとうございます
IF関数の重ねがけ?がいまいち分らなかったので助かりました
>>254
2016以降だとIFS関数というのも使えるんですね
Win7のサポート切れに伴うPCの入れ替え時にVDI化するらしいですが、
その際にエクセルも2016以降になるかと思います
もっと勉強して自分で出来るようにしていきたいです

257:名無しさん@そうだ選挙にいこう
19/08/18 13:02:03.75 .net
【1 OSの種類         .】 Window10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
以下のコードは"あ","い","う","え","お" の5チームの総当たりのリーグ戦を示したものです。書籍からですのでところどころは変えてあります。(変数名など)
このコードを解読しようとしているのですが、どうしてもわかりません。お分かりになる方教えてください。よろしくお願い致します。
Sub リーグ戦 ()
Dim チーム,チーム1.チーム2.i
チーム=Array("あ","い","う","え","お")
チーム2=1
For Each チーム1 In チーム
For i =チーム2 To 4
Debug.Print チーム1 & "vs" & チーム(i)
Next
チーム2 = チーム2 + 1
Next
End Sub

258:名無しさん@そうだ選挙にいこう
19/08/18 13:51:53.68 .net
>>257
どの部分がどうわからないか書いてないぞ

259:名無しさん@そうだ選挙にいこう
19/08/18 14:31:20.93 .net
>>257
入力ミスがあったから直した
Sub リーグ戦()
  Dim チーム, チーム1, チーム2, i
  チーム = Array("あ", "い", "う", "え", "お")
  チーム2 = 1
  For Each チーム1 In チーム
    For i = チーム2 To 4
      Debug.Print チーム1 & "vs" & チーム(i)
    Next
    チーム2 = チーム2 + 1
  Next
End Sub

260:名無しさん@そうだ選挙にいこう
19/08/18 14:49:16.32 .net
>>257
総当たりなので、2重ループでチーム名をすべて書き出してるだけ
ただし、外側のループはEachを使って全チーム
内側のループは重複する組み合わせを除くためにループの初期値を順番にずらしている
URLリンク(imgur.com)

261:名無しさん@そうだ選挙にいこう
19/08/18 17:36:21.27 .net
>>246
あー単にソースコード見てたのか
たしかに114行目にストアリストはある
ただ100件しか表示されないんだよな…
てことでスレチだし終わりにするわ

262:256
19/08/18 21:23:53.22 .net
皆様ありがとう。どこがわからないか整理するわ。
ぶっちゃけてどうわからないかもよくわからない。。。

263:名無しさん@そうだ選挙にいこう
19/08/18 21:44:09.34 .net
上から順に読んでいって何行目で詰まったかじゃないんか

264:名無しさん@そうだ選挙にいこう
19/08/18 23:10:42.76 .net
何なら分かるか(if文なら分かるとかArrayは分かるとかfor文は分かるとか)が分かれば教えようもあるけど全て分からないなら1行ごとの意味を調べた方が良いと思う
ロジックが分からないなら>>260の通り

265:名無しさん@そうだ選挙にいこう
19/08/18 23:11:21.99 .net
あ、if文無かったわ

266:256
19/08/18 23:34:44.80 .net
For のコードが二個あるじゃないですか?
それは分解して考えた方がいいですよね?すいません、的外れな質問で。。。

267:名無しさん@そうだ選挙にいこう
19/08/18 23:36:51.60 .net
>>266
内側から順に考える

268:256
19/08/18 23:41:42.39 .net
>>267
なるほど、内側からですね。少しねばって見てみます。

269:名無しさん@そうだ選挙にいこう
19/08/18 23:42:47.64 .net
てか、コード読めないならいきなりバラバラに考えずまず1行ずつ追っていって何が行われてるか見ないと意味がわからないんじゃないのか

270:名無しさん@そうだ選挙にいこう
19/08/18 23:44:00.44 .net
>>266
>>260の表を例にとると縦軸のforと横軸のfor
縦軸はArrayに格納されてるあ、い、う、え、お を順番に回す
横軸はArrayに格納されてる2〜4番目を回す
ただ、チーム1が「あ」の時は2〜4番目を回すけど、「い」の時も2〜4番目を回すと いvsい が出来てしまうので
チーム1が「い」の時は3〜4番目を回したい
なので開始の番目を3にする為にチーム2+1をしてる

271:名無しさん@そうだ選挙にいこう
19/08/18 23:44:33.15 .net
forだって順に追っていけば自然と内側から理解していくことになるはずだ

272:256
19/08/18 23:50:14.64 .net
みなさんありがとうございます。明日にまたレス頂いた文章を参考に考えます。今日はちょっと自分の中で答えが出そうにないです。それにしてもVBAは奥が深いです。プログラミングを全くしたことない人間はキツイのかなって思いますね。。。

273:名無しさん@そうだ選挙にいこう
19/08/18 23:51:07.60 .net
for each と普通のforを混在させているのは学習用の教材のため?
学習用にしてはあまりよい例とは思えない。
実用的にはfor eachを使わずに普通のforで統一したほうが構造が理解しやすい

274:名無しさん@そうだ選挙にいこう
19/08/18 23:53:14.41 .net
Each in使う時はシート回したい時くらいしか使わないわ

275:名無しさん@そうだ選挙にいこう
19/08/18 23:57:04.76 .net
よく使う

276:名無しさん@そうだ選挙にいこう
19/08/19 00:08:11.18 .net
vbaって他の言語より難しく感じる

277:名無しさん@そうだ選挙にいこう
19/08/19 00:15:54.85 .net
>>276
なぜかと聞いておる

278:名無しさん@そうだ選挙にいこう
19/08/19 00:26:21.48 .net
>>277
は?256じゃないよ

279:名無しさん@そうだ選挙にいこう
19/08/19 00:50:20.80 .net
>>278
このハゲ

280:名無しさん@そうだ選挙にいこう
19/08/19 01:03:31.03 .net
なんだ基地外か

281:名無しさん@そうだ選挙にいこう
19/08/19 02:23:24.40 .net
SplitとかArrayみたいな配列を返す関数を使った時は、配列の範囲をいちいちLBoundとUBoundで調べるのが面倒だからEachで回すけどなあ
慣れるとすごく便利だよ

282:名無しさん@そうだ選挙にいこう
19/08/19 02:31:19.71 .net
split関数って普通のexcel365にはないんだよね?
vbaかスプレッドシートのみか

283:256
19/08/19 07:25:34.70 .net
このスレの中でスクールなどに通わないで、書籍、ネットのみでVBAを使いこなせるようになった方々の勉強法、またどれくらいの期間勉強しているかなど教えてもらえると嬉しいです。私は上記の本を4冊読んだだけの完全なるど素人です。

284:名無しさん@そうだ選挙にいこう
19/08/19 07:43:50.31 .net
仕事しないと覚えないからね

285:名無しさん@そうだ選挙にいこう
19/08/19 10:50:03.26 .net
>>283
始めたのは中学の時、最初は友達と一緒にベーマガとか読みながら勉強して、学校の先生や先輩にも色々教えて貰った
高校に入ってからはプログラムを作るバイトを紹介してもらって、仕事しながら覚えた感じ

286:名無しさん@そうだ選挙にいこう
19/08/19 16:13:48.59 .net
チーム
って単語ずっと見てたら変な言葉に思えてきた

287:名無しさん@そうだ選挙にいこう
19/08/19 18:41:29.16 .net
for i〜は定数や順序が必要な場合かな
特に特定の条件で行削除などはstep-1が必要になるのでforeachで処理しないほうが良い。見辛い
>>257の場合は両方foeachでいいぞ
Sub リーグ戦()
Dim チーム, チーム1, チーム2, i
チーム = Array("あ", "い", "う", "え", "お")
For Each チーム1 In チーム
For Each チーム2 In チーム
If チーム1 <> チーム2 Then Debug.Print チーム1 & "vs" & チーム2
Next
Next
End Sub

288:名無しさん@そうだ選挙にいこう
19/08/19 19:29:17.93 .net
>>283
必要になるたび随時調べて使ってたら覚えた
VBAに限らず本読んだだけで技術を身に付けるなんて一般人には無理だぞ
4冊読むだけより1冊実際に動かして何か作りながら読む方が圧倒的に身に付く

289:名無しさん@そうだ選挙にいこう
19/08/19 21:15:20.08 .net
URLリンク(i.imgur.com)
数式で可能ですが項目1(A列)のように入力したいです。
項目2(b列)にはすでに値が入力されています。
100
1
2
スペース
101
1
2
3
スペース
これを隣の列に
100-100
100-1
100-2
101-101
101-1
101-2
101-3
と入力したいです。
数式でなおかつオートフィルが条件。

290:名無しさん@そうだ選挙にいこう
19/08/19 21:30:34.33 .net
>>289
条件て

291:名無しさん@そうだ選挙にいこう
19/08/19 22:02:47.45 .net
体言止めやね。

292:名無しさん@そうだ選挙にいこう
19/08/19 22:03:34.60 .net
>>289はキチガイにつきスルー安定
【急募】エクセルの先生来てくれ…
スレリンク(news4vip板)

293:名無しさん@そうだ選挙にいこう
19/08/19 22:06:10.64 .net
お、答えなくてよかった
今回はさすがにねぇ

294:名無しさん@そうだ選挙にいこう
19/08/19 22:10:51.21 .net
数式で可能ですがって言うからVBAがいいのかと思ったらやっぱり数式がいいのか?
>>292
なんだ、せっかく作ったのに

295:名無しさん@そうだ選挙にいこう
19/08/19 22:17:22.32 .net
>>292
だとおもたよ

296:名無しさん@そうだ選挙にいこう
19/08/19 22:18:39.49 .net
>>292
教えてる奴に対して「ガイジ」ってマジモンだな

297:256
19/08/19 22:18:43.04 .net
返信をしていただいた方ありがとうございました。
今日も今からは答えが出そうにないです。
明日以降に考えたいと思います。
ありがとうございました。

298:名無しさん@そうだ選挙にいこう
19/08/19 22:21:08.28 .net
>>297
>>257のコードは間違っている。そんなもん考える必要はない
正解は>>287

299:名無しさん@そうだ選挙にいこう
19/08/19 22:22:22.60 .net
>>297
間違っているわけではなかったわ。
ただ、慣れてない人が書いた無駄の多いコードなので読みにくくて当然
慣れない内からこんなものを参考にするもんじゃない

300:名無しさん@そうだ選挙にいこう
19/08/19 22:22:35.28 .net
一体何を考えて何の答えを出そうとしているのか…?

301:256
19/08/19 22:26:43.70 .net
>>300
答えといいますか、コードを読み解くことです。
今日は暑気払いで体調を崩したのでまた明日以降に考えたいと思います。

302:名無しさん@そうだ選挙にいこう
19/08/19 22:32:24.36 .net
これネタじゃねーか?

303:名無しさん@そうだ選挙にいこう
19/08/19 22:32:29.04 .net
コードを読み解くって具体的にどういうことを言っているんだろうな
やってることがよくわからんなぁ…

304:名無しさん@そうだ選挙にいこう
19/08/19 22:42:50.81 .net
>>287は間違ってる
「あvsい」と「いvsあ」はどちらか片方だけにしたいんだよ

305:名無しさん@そうだ選挙にいこう
19/08/19 22:51:24.33 .net
>>299だけど、ごめん俺が間違えてた
>>257で良い
vbaはpushとか無いから超めんどい書き方にするしかない

306:名無しさん@そうだ選挙にいこう
19/08/19 23:08:05.08 .net
言い訳すな

307:名無しさん@そうだ選挙にいこう
19/08/19 23:15:38.24 .net
この場合はFor Eachなんか使わない方が分かりやすいって
という僕が通りますよ
Sub リーグ戦2()
Dim チーム, i1, i2, i2初期値
チーム = Array("あ", "い", "う", "え", "お")
i2初期値 = 1
For i1 = 0 To 4
For i2 = i2初期値 To 4
Debug.Print チーム(i1) & "vs" & チーム(i2)
Next
i2初期値 = i2初期値 + 1
Next
End Sub

308:名無しさん@そうだ選挙にいこう
19/08/19 23:18:23.93 .net
実用じゃなくてForの説明のための例文だからじゃね?

309:名無しさん@そうだ選挙にいこう
19/08/19 23:28:24.08 .net
>>307
配列の範囲を決め打ちするなら、こう書けば変数が一つ減らせる
For i1 = 0 To 3
For i2 = i1 + 1 To 4

310:名無しさん@そうだ選挙にいこう
19/08/19 23:38:44.61 .net
そのうちほのぴが石田ばりにシャウトしてくれることを夢見てるよ

311:名無しさん@そうだ選挙にいこう
19/08/20 04:35:28.10 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
やりたいことはハイパーリンクからchromeを開いてhtml取得して保存してchromeは閉じるというループ処理
【詳細】
excelシートA列にあるハイパーリンクをchromeで開く
開いたWebサイト上で右クリックのソースコードを表示させ、htmlを取得しテキストまたはexcelシートに貼り付け保存
chromeを閉じる
(htmlの保存はできれば開いている同じexcelファイルにシートを増やしていきたい)
もし該当しないurlの場合は次のハイパーリンクを開くエラー回避処理も入れたい
この動作をA列にあるハイパーリンク全部に対してループ処理したい
chromeだと厄介であればIEを使うことも検討してます
よろしくお願いします

312:名無しさん@そうだ選挙にいこう
19/08/20 05:45:10.88 .net
データ取得の内職か?

313:名無しさん@そうだ選挙にいこう
19/08/20 06:16:46.92 .net
>>311
とりあえず
スクレイピング vba
とかで検索してみては?
まるなげすぎてさすがに面倒

314:名無しさん@そうだ選挙にいこう
19/08/20 09:12:46.40 .net
エクセルでクローラー作るん?

315:名無しさん@そうだ選挙にいこう
19/08/20 09:40:50.53 .net
>>313
たしかにwすまんです
早朝過ぎてPC開けてなかった
ハイパーリンクを開くところまではわかっていてその後のhtml取得ループをこれから作ろうと思っている
あとで途中までコード書く

316:名無しさん@そうだ選挙にいこう
19/08/20 09:43:45.89 .net
>>311
いちいちブラウザを開かなくても、URLからページのソースを直接ダウンロードできるよ

317:名無しさん@そうだ選挙にいこう
19/08/20 10:28:47.06 .net
>>316
どもです
ググったらその方法もあったのでそれも合わせて検討中です
Pythonでやるか?考えてるのでvbaでやることになって詰まったら具体的に書きます

318:名無しさん@そうだ選挙にいこう
19/08/20 14:18:47.56 .net
>ハイパーリンクを開くところまではわかっていて…
ウケる
とっとと死ね丸ハゲ野郎
あ、丸投げ野郎

319:名無しさん@そうだ選挙にいこう
19/08/20 14:32:47.48 .net
>>318
あまりわたしを怒らせないほうがいいぞ
このハゲ!
とりあえずhtmlのbody要素のinnerHTMLを取得するのは分かったが
chromeで開かずにする方法やリンクが存在しないときなどのエラー処置に悩む。

320:名無しさん@そうだ選挙にいこう
19/08/20 16:13:11.03 .net
おらよ
Sub HAGE()
Dim Hage
Hage:
Hage = MsgBox("私はハゲです", 4)
If Hage = vbNo Then GoTo Hage
End Sub
感謝しろよハゲ

321:310
19/08/20 17:34:44.28 .net
>>320
このハゲー!違うだろ!
この書き方には問題がたくさんある。
(1) 変数定義で型はちゃんと明示しろ→"As VbMsgBoxStyle"を足した
(2) 4という意味不明のマジックナンバーは混乱のため不可→"vbYesNo)"にした
(3) GoTo文はスパゲティプログラムの温床。→"Do Loop文"にした。
もう一度言う。
こ の ハ ゲ ー !
URLリンク(youtu.be)
--------------------------------------------
Sub Hage()
Dim Hage As VbMsgBoxStyle
Do
Hage = MsgBox("このハゲー!", vbYesNo)
Loop While Hage = vbNo
End Sub

322:名無しさん@そうだ選挙にいこう
19/08/20 18:13:04.40 .net
この場合はWhileではなくUntilを使わないとマーの意図が読み取りづらくなる
あと変数にいちいち代入するのは無駄
Sub Tumaran()
  Do
  Loop Until MsgBox("つまらん", vbYesNo) = vbYes
End Sub

323:名無しさん@そうだ選挙にいこう
19/08/20 18:14:00.18 .net
>>320,321
キャンセルされた時の判定がないからダメ

324:名無しさん@そうだ選挙にいこう
19/08/20 19:32:07.94 .net
ハゲはキャンセルで回避出来るのか

325:名無しさん@そうだ選挙にいこう
19/08/20 19:53:09.43 .net
>>317
pythonでやることにしたっす

326:名無しさん@そうだ選挙にいこう
19/08/21 01:18:30.28 .net
>>325
VBAでもPythonでもいいけど
Chromeで表示させる意図が分からない
いちいち目検でチェックさせて閉じさせて、閉じたイベントハンドラ取得して、ロジック組みたいって事?

327:名無しさん@そうだ選挙にいこう
19/08/21 11:46:44.01 .net
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
画像のD列に合計を求めたいのですが、どのような式にすれば画像のような合計値が出せますか?
sumifとワイルドカードでは無理ですよね…
URLリンク(imgur.com)

328:名無しさん@そうだ選挙にいこう
19/08/21 11:49:30.49 .net
>>327
作業列の追加はしない式ありましたらお願いします

329:名無しさん@そうだ選挙にいこう
19/08/21 12:21:46.82 .net
>>327
計算のルールがまったくわからん
何と何をどう足してるんだ

330:名無しさん@そうだ選挙にいこう
19/08/21 15:02:27.70 .net
>>329
すみません忘れてください

331:名無しさん@そうだ選挙にいこう
19/08/21 20:17:43.81 .net
>>327
E列を名前列として上からaaa、bbb、ccc、ccc、cccと入ってるとする
=SUMIF($B$3:$B$7,"*"&D3&"*",$C$3:$C$7)

332:名無しさん@そうだ選挙にいこう
19/08/21 20:19:42.31 .net
間違えた
=SUMIF($B$3:$B$7,"*"&E3&"*",$C$3:$C$7)

333:名無しさん@そうだ選挙にいこう
19/08/21 22:06:36.19 .net
ずっとフリーソフトを使っていて最近になってエクセル2016を使い始めたんだが
画面右端のセルが少ししか見えてない状態で、そのセルをワンクリックしてもセルが左に自動的にズレてセル全体が見えるようにはならない仕様なのかな?
ダブルクリックすれば思うような動きはしてくれるけど、設定等とかで変更できるのなら知りたい

334:名無しさん@そうだ選挙にいこう
19/08/21 22:19:11.13 .net
>333
残念、ないんだなこれが

335:名無しさん@そうだ選挙にいこう
19/08/21 22:45:23.37 .net
>>333
エクセルでマウス使うな

336:名無しさん@そうだ選挙にいこう
19/08/21 22:56:12.30 .net
マウスはひっくり返して、F1キーは外す。これ、外資系コンサルの常識だよ。

337:名無しさん@そうだ選挙にいこう
19/08/21 23:13:48.29 .net
F1キーはマジで要らんよな

338:名無しさん@そうだ選挙にいこう
19/08/21 23:16:15.33 .net
日経ビジネスアソシエを真に受けた結果・・・。

339:名無しさん@そうだ選挙にいこう
19/08/21 23:16:23.65 .net
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010,2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
データを入力してEnterを押すと任意の場所にアクティブセルを移動させる方法はありますか?
A1にデータを入力してEnterを押すとデフォルト設定ではアクティブセルはA2に移動しますが、
A1にデータを入力してEnterを押すとD1に、D1にデータを入力してEnterを押すとB3に・・・といった感じです

340:名無しさん@そうだ選挙にいこう
19/08/21 23:19:10.20 .net
>>336
外資系コンサルはExcelなんて使いません

341:名無しさん@そうだ選挙にいこう
19/08/21 23:23:39.76 .net
>>339
無いが、
データを入力するところはA1,A2,A3にしておき、
データを出力するところは
A2=A1
D1=A2
B3=A3
のようにすることは可能
というか俺がやってる
>>340
これネタやぞ

342:名無しさん@そうだ選挙にいこう
19/08/21 23:42:00.78 .net
>>339
Ctrlキーを押しながらD1 B3 A1の順にクリック
データ入力Enterの繰り返しでその順番に移動する

343:名無しさん@そうだ選挙にいこう
19/08/22 00:48:57.42 .net
>>335
マウス禁止ならクイックアクセスなんたらショートカットもどきではなくて各コマンドをショートカットでカスタマイズできる仕様にして欲しいわ
某フリーソフトなら仕様でカスタマイズ可能なんだけどな

344:名無しさん@そうだ選挙にいこう
19/08/22 03:03:02.83 .net
>>339
VBAを使いこなせ。
対象のSheetモジュールに
Private Sub Worksheet_Change(ByVal Target As Range)
で書けばなんとでもなる。

345:名無しさん@そうだ選挙にいこう
19/08/22 07:25:02.89 .net
IT系以外では、それなりに大きな会社であっても絶対マウス使うマンが概ね主流だよな
クイックアクセスツールバーにクイック印刷以外のデフォルトボタンなど邪魔でしょうがない(自宅PCでは外して他のを登録してます)けど、郷に入れば何とやらか
まあ、自分だけショートカット使って出来る限り差を付けるのがベターだな

346:名無しさん@そうだ選挙にいこう
19/08/22 09:11:46.36 .net
事務作業の能率をチェックして個人の評価を決めてる会社なんてあるの?
処理した伝票の枚数とかいちいち調べてたら逆に怖いわ

347:名無しさん@そうだ選挙にいこう
19/08/22 09:13:27.73 .net
Excel使う雑用なんかどんだけ能率を上げてもダラダラやっても給料は変わらん

348:名無しさん@そうだ選挙にいこう
19/08/22 09:19:06.97 .net
>>347
使いようによってはだいぶ違うと思うんですけど?
URLリンク(toyokeizai.net)

349:名無しさん@そうだ選挙にいこう
19/08/22 09:36:20.19 .net
>>348
レアケース
そんなルールの厳しい会社に務めてるやつは5chなんか見ない
ローカルルールを知らない他人の回答はまったく役に立たないから同僚に聞くしかない

350:名無しさん@そうだ選挙にいこう
19/08/22 10:39:18.30 .net
むしろ重くなるから関数使うなという所もあるしな
そういう時は白紙ブックにマクロを入れて裏から操作すればいいけど
マクロで操作出来るのは何もマクロ入りのブックだけではないし

351:名無しさん@そうだ選挙にいこう
19/08/22 10:46:24.04 .net
>>347
少なくともこんなのから脱却せんと、生産性向上も楽することも望めない。
URLリンク(images.app.goo.gl)

352:名無しさん@そうだ選挙にいこう
19/08/22 12:40:04.15 .net
>>346
入力代行業とかだと普通にあるだろ
てかそう言うのを把握しておかないと作業時間の見積もりもできないし

353:名無しさん@そうだ選挙にいこう
19/08/22 14:31:53.29 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010,2013
【3 VBAが使えるか    .】 中級
【4 VBAでの回答の可否】 可
シートに表があります。
名前、ふりがな、注文品、個数という表です。
何百行もある表です。
あるフォームを開いた時そこのコンボボックスの選択肢に
シートのふりがなを用いたいのですが、表には同じ人が何回も登場するし
できればあいうえお順で.cmbboxにAddItemしたいです。
重複を避けあいうえお順にするのに何かいい方法ないでしょうか?

354:名無しさん@そうだ選挙にいこう
19/08/22 14:54:32.12 .net
URLリンク(www.ningenkankeitukare.com)

355:名無しさん@そうだ選挙にいこう
19/08/22 15:31:55.27 .net
>>352
さすがにそこまで単純な作業は歩合制かノルマ制が普通では

356:名無しさん@そうだ選挙にいこう
19/08/22 15:43:07.27 .net
>>353
どこか空いてるセルにふりがなの列をコピーして、重複の削除(RemoveDuplicate)と並び替え(sort)をすれば少ない手間で目的のデータが得られる

357:名無しさん@そうだ選挙にいこう
19/08/22 15:45:04.32 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(必要なら覚えます)
(機能の例としてのファイルなので、見なくても大丈夫です)
URLリンク(www.beec.or.jp)
一般財団法人 日本建築設備・昇降機センターのサイトに繋がります。
このページの
「東京都 建築設備定期検査報告書+報告概要書 Excel2010【リンク版】2019.4.26」
のファイルの中にあるマクロ(?)のように、
「エクセルファイル1」の「ワークシート名」の「セル(仮にA1)」の内容を、
「エクセルファイル2」の「ワークシート名」の「セル(仮にA1)」に移す、
という作業を各入力セル(500セルくらいあります)に行う
マクロ(?)ってどのように作ればよいのでしょうか?
このサイトの書式に限らず、
「公式が配ってる書式が1年に1度くらいのペースで微妙に変えられるので
旧書式の入力内容を新書式に手作業でカタカタ頑張って打ち込む」みたいなことが多いので
マクロ(?)やプログラムで自動処理みたいなのができるなら頑張って作りたいです。

358:名無しさん@そうだ選挙にいこう
19/08/22 16:01:51.70 .net
>>357
VBAならセルのコピーは1行で書けるけど、書式が変わってしまったら自動で対応するのはかなり難しいと思う
(例)
Workbooks("エクセルファイル2").Sheets("ワークシート名").Range("A1") = Workbooks("エクセルファイル1").Sheets("ワークシート名").Range("A1")

359:名無しさん@そうだ選挙にいこう
19/08/22 16:22:03.81 .net
>>358
書式が変わるのは頻繁ではない(多くて半年に1度程度)なので、
軽微な書式の変更は手作業のメンテナンスで対応していこうかと思っています。
(「A1をA1にコピー」を、「A1をA2にコピー」にする程度の書き換えを
十数ヶ所、程度の作業で大丈夫だと思いますので。)
Workbooks( )
Sheets()
Range()
=
を教えていただいたおかげで、方向性がわかって
検索もできるようになったので、ここからはコツコツと覚えていこうと思います。
ありがとうございました。

360:名無しさん@そうだ選挙にいこう
19/08/22 19:16:16.27 .net
>>355
君が知らないだけで、世の中こういう単純作業って山ほどある
納期が厳しいものは作業員の能力を把握してないと即納期遅延になるので、ノルマとか歩合制では不安定過ぎる

361:名無しさん@そうだ選挙にいこう
19/08/22 21:16:23.37 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
1つのファイルでシート1にデータソース、シート2、3にピボットを組んでます
ピボットのデータ範囲は同一のテーブルを使用しているのですが、片方は全て集計されているのに、もう片方はデータ1行分が集計されません
単純なピボットなので、組み方は間違っていないと思います
見当がつく方いらっしゃいますか

362:名無しさん@そうだ選挙にいこう
19/08/22 21:27:47.65 .net
>>361
この手のミスを探すときはまず、間違っていないという思い込みを捨て、めんどくさがらず確認する

363:名無しさん@そうだ選挙にいこう
19/08/22 21:38:45.48 .net
>>361
色んな原因あるから見ないことにはなんとも
ちなみに総合計も不足してる?

364:360
19/08/22 22:00:19.97 .net
>>362
明日全てチェックするようにします
>>363
総合計が不足していたので気付きました
セキュリティが厳しい会社なので、ファイルの持ち出しは出来ないですね

365:名無しさん@そうだ選挙にいこう
19/08/22 22:07:10.23 .net
>>364
>セキュリティが厳しい会社なので、ファイルの持ち出しは出来ないですね
いやw普通でしょ

366:名無しさん@そうだ選挙にいこう
19/08/23 00:12:16.95 .net
>>361みたいな悩みって、見る人が見たら数秒で原因がわかり、数分で修正できてしまうものだと思う。
こういうのを遠隔操作でチャッチャと解決してくれるサービス、誰かはじめてください。

367:名無しさん@そうだ選挙にいこう
19/08/23 01:18:37.43 .net
同じにしてるつもりが、データソースが1つずれてるんじゃないの?

368:名無しさん@そうだ選挙にいこう
19/08/23 19:40:56.68 .net
こういう些細なミスしてるやつってろくに確認しないで合ってると言い張るんだ
そして確認は他人に丸投げ

369:名無しさん@そうだ選挙にいこう
19/08/23 20:08:40.67 .net
疲れ切ってる時は許してあげて

370:名無しさん@そうだ選挙にいこう
19/08/23 20:17:53.55 .net
疲れてない時にやればいいじゃん自己中だなぁ

371:名無しさん@そうだ選挙にいこう
19/08/24 03:23:33.85 .net
VBA習いにパソコン教室いくわ。もう限界や。独学じゃわからへんわ。

372:名無しさん@そうだ選挙にいこう
19/08/24 13:37:01.59 .net
>>371
教えてくれるとことかある?
VBAマスター?取りたいんだよね
エクセルエキスパートとアクセスは取った

373:名無しさん@そうだ選挙にいこう
19/08/24 14:06:02.27 .net
無職の期間に職安の訓練校通ってExcel Access VBAのセットコース取ったけどVBAは触りだけって感じで業務に役に立つレベルには程遠かった

374:名無しさん@そうだ選挙にいこう
19/08/24 14:42:15.24 .net
>>372
いっぱいあるよ。パソコン教室はマジで吟味して決めた方がいいよ。周りの人たちがWordとかPhotoshopとかやってると質問とかしづらい。要は少人数の教室を探して行くのが1番いいよ。

375:名無しさん@そうだ選挙にいこう
19/08/24 15:35:51.28 .net
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

カーソルの位置を自動で適切な位置にしたいです
横列1の縦列のCまで入力したら自動で
横列2の縦列Aにカーソル移動
横列2の縦列Cまで入力したら自動で
横列3の縦列1にカーソル移動
って感じにしたいです

376:名無しさん@そうだ選挙にいこう
19/08/24 16:06:41.91 .net
>>375
たとえばマウスでA1からC3までドラッグして選択しとけば、その中だけで順番に動くようになる

377:名無しさん@そうだ選挙にいこう
19/08/24 18:31:55.71 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
B列からZ列くらいまで、10行の表があります。
B3の値が「出席」なら、B4のセルの背景色が青になるというように、
BからZ列までぜんぶ、「○3の値が出席なら○4の背景色を青」と
設定したいのですが、どのようにすればいいのでしょうか?
条件付き書式って、自分自身のセルのことしか無理っぽいです。
ひとつ上のセルを条件にするってことと、できればBからZまで一括設定がしたいのですが
何か方法あるでしょうか?

378:名無しさん@そうだ選挙にいこう
19/08/24 19:03:05.94 .net
>>375
毎回範囲を選択した状態にするのも面倒なら
入力したい範囲のセルの書式設定の保護タブで、ロックのチェックを外し
校閲タブのシートの保護で、ロックされたセル範囲の選択のチェックを外すと
ロックされていないセル範囲=入力したい範囲しかカーソルが動くことはなくなる。

379:名無しさん@そうだ選挙にいこう
19/08/24 19:20:09.13 .net
>>377
1 B2:Z11のセル範囲を選択する
2 リボン→ホーム→条件付き書式→新しいルール→数式を使用して〜
3 数式を入れる枠に =B1="出席" を入力
4 [書式]ボタンをクリック
5 塗りつぶしのタブをクリック→塗りつぶす色を指定→[OK]をクリック
6 [OK]をクリック
B2:Z11を選択している状態で、数式にB1と指定したところがミソです。

380:名無しさん@そうだ選挙にいこう
19/08/24 19:21:54.75 .net
>>377
B4セルの条件付き書式の条件の数式に
=B3=”出席”
でええんとちゃう?
なんでそのセルの値しか参照できないと思い込むのか分からん

381:名無しさん@そうだ選挙にいこう
19/08/24 19:51:33.75 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
条件で別領域に取り出すSMALL関数について質問があります。
B店舗夜間 25000
A店舗夜間 30000
Z店舗夜間 35000
Y店舗昼間 50000
Z店舗昼間 75000
A店舗昼間 100000
B店舗昼間 200000
上記のような売上表があって、
別セルに"A店舗夜間"を除外して、以下の式を別領域で計算していました。
={SMALL(IF(A$1:A$100<>"A店舗夜間",B$1:B$100),ROW(A1))}
条件に"B店舗夜間"も除外対象に追加したいのですが、うまくいかないのでご教示いただければ幸いです。

382:名無しさん@そうだ選挙にいこう
19/08/24 21:00:07.09 .net
>>381
なんでフィルタオプション使わないの?

383:名無しさん@そうだ選挙にいこう
19/08/24 22:01:10.22 .net
>>382
ご教示ありがとうございます。
確かにフィルターオプションでできました。
ただ、元の式から条件が追加になるだけだったので、式の軽微な修正でできるかと思ってました。

384:名無しさん@そうだ選挙にいこう
19/08/24 23:25:04.36 .net
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
初心者ですが、ここにながれつきました・・・
エクセルの式で、どのように作ればよいか分からず
悩んでいます。
セルA1が「1」ならB2を反映、A1が「2」ならC5を反映
としたいのですが、この場合どのような式になるのでしょうか。
ifsは2013では無理とやっと分かり、vlookupではとなりのセルしか
反映できない?みたいで、行き詰まっています・・・
すみませんが、どなたかご教授願います!

385:名無しさん@そうだ選挙にいこう
19/08/24 23:36:52.52 .net
>>384
=IF(A1=1,B2,IF(A1=2,C5,""))
これでいいのでは?最後の方の""は、セルA1の値が1でも2でもない場合の値となります。

386:名無しさん@そうだ選挙にいこう
19/08/24 23:38:35.61 .net
>>384
=SWITCH(A1,1,B2,2,C5,C1)
A1が1ならB2の値、A1が2ならC5の値、それ以外ならC1の値を表示する

387:名無しさん@そうだ選挙にいこう
19/08/25 00:21:52.02 .net
>>384
=CHOOSE(A1,B1,C5)
2013ならこれ

388:名無しさん@そうだ選挙にいこう
19/08/25 04:18:57.18 .net
>>387
B1どこからでてきたw
初心者さんだと簡単なミスでも混乱するぞきっとw

389:名無しさん@そうだ選挙にいこう
19/08/25 08:29:45.03 .net
ご回答ありがとうございます!!
今晩、パソコンで試してみます!
色々とありがとうございます。

390:名無しさん@そうだ選挙にいこう
19/08/25 14:25:41.74 .net
【1 OSの種類         .】 Windows 10
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 希望します
i = Int(100 * Rnd + 1)
変数 i に 1から100までのランダムな数値入れて
その内、NGとなる数字を30個、A1:A30に入力します。
そして i に A1:A30 の値を参照させて判定させたいのですが
複数のセルを参照することができません。
If i = Range("A1:A30") としても、参照されるのがA1だけになってしまいます。
If i = Range("A1,A2,A3…")としても、一緒でA1だけになります。
参照するセルが複数の場合、どのように指定すれば良いのでしょうか?
また、マクロではあまり、セルに入力されている値を参照するものでも
ないのでしょうか?分かりにくい説明ですみません、よろしくお願いします。

391:名無しさん@そうだ選挙にいこう
19/08/25 15:21:40.18 .net
>>390
forで回すとか、WorksheetFunctionでやるとか
On Error Resume Next
hage = WorksheetFunction.Match(i, Range("A1:A30"), 0)
On Error GoTo 0
If hage > 0 Then
MsgBox "OK"
Else
MsgBox "NG"
End If

392:名無しさん@そうだ選挙にいこう
19/08/25 15:21:47.34 .net
findか何かを使えばいいんだろうけど構文を調べるのが面倒だから
ForEachで作ってしまう僕が通るだけで後はまかせますよ

393:名無しさん@そうだ選挙にいこう
19/08/25 16:15:44.65 .net
>>390
if range("A1:A30").find(i) is nothing then debug.print "NG"

394:名無しさん@そうだ選挙にいこう
19/08/25 16:18:35.87 .net
間違えたわ
if range("A1:A30").find(i) is nothing then debug.print "OK"

395:名無しさん@そうだ選挙にいこう
19/08/25 16:20:29.34 .net
findは文字列・数値で見つからないのが微妙に怖い

396:名無しさん@そうだ選挙にいこう
19/08/25 16:22:56.71 .net
見つからないことが困るか困らないかは仕様と目的による


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1727日前に更新/209 KB
担当:undef