X



Excel総合相談所 136
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@そうだ選挙にいこう
垢版 |
2019/07/27(土) 17:47:29.09
【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
0002名無しさん@そうだ選挙にいこう
垢版 |
2019/07/30(火) 10:21:34.91
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

https://dotup.org/uploda/dotup.org1909226.xlsx.html
パス:excel
 相談させて下さい。
 職場のシフト表なんですが、
今現在シート”1F”のようになっております
(実際には人数が3倍くらいですが)
 これをシート”組み換え”のように出勤する
人だけを抽出する形にするにはどうしたら
よいでしょうか?
 一々出勤する人を探すのが面倒なんですよ。
0003名無しさん@そうだ選挙にいこう
垢版 |
2019/07/31(水) 07:16:51.74
>>2
4枚のシートのあるブックを見ました。勤務指定が重複する(日が2個)のがやっかいですね。
A〜Pが従業員氏名で
早、日、公、遅、勤、1F早、1F日、1F遅が勤務指定で
1〜7は日付でしょうか。完成形は1〜31でしょ?
シートをまたぐ勤務指定もある(8/5のCと2FシートのHが1Fの遅勤務)ようで、
「組み換え」シートの方ではひとつのセルに複数の職員が並んでいる。
VBA可なら(自分ではない誰かが)つくってくれるかも、だろうけど、計算式だけでは自分には無理。

自分はボランティアとして関わっている福祉のNPOで「ヘルパー週間予定表」なるものを
VBAを駆使してつくった経験はあります。
一覧表形式(※)の情報を1件1行に展開して別シートに累積しておいて、元の表形式に再構成したり、
勤務時間やサービスの種類別に集計したりと活用してもらってます。
※横方向には1週間分、縦方向にはヘルパー数十人分の枠があり、ヘルパー一人1日あたり9件の
スケジュール(開始時刻、終了時刻、サービス区分、利用者氏名)を入力。
0005名無しさん@そうだ選挙にいこう
垢版 |
2019/07/31(水) 15:58:35.10
散布図のグラフの元の表は
以下のようなマトリクスだとダメなのでしょうか
どういう持ち方じゃないとダメかわかりません。

x y z
a
b
c
0007名無しさん@そうだ選挙にいこう
垢版 |
2019/07/31(水) 22:57:11.66
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

ゲーム以外で、何か面白い使い方はありますか?
例えば、テレビのリモコンが壊れたから、
エクセルをリモコンの代わりに使うとか。
0009名無しさん@そうだ選挙にいこう
垢版 |
2019/07/31(水) 23:03:17.66
>>7
数独で解けない問題があるときに答えをだせるツールを作った。
0010名無しさん@そうだ選挙にいこう
垢版 |
2019/08/01(木) 00:27:43.73
以下の表を

a 2 4
b 5 1
c 3 5

下のようなグラフにするには
どのよう操作が必要ですか?

5 ⚫︎ ⚫︎
4 ⚫︎
3 ⚫︎
2 ⚫︎
1 ⚫︎
0
a b c
0011名無しさん@そうだ選挙にいこう
垢版 |
2019/08/01(木) 00:38:09.36
明日休みで今暇だから答えてあげたいけど意味が全く分からない
0016名無しさん@そうだ選挙にいこう
垢版 |
2019/08/01(木) 06:36:50.66
abcはいったい何を意味するのか
0018名無しさん@そうだ選挙にいこう
垢版 |
2019/08/01(木) 08:38:50.65
>>12
その軸のまま
プロットしたい
0019名無しさん@そうだ選挙にいこう
垢版 |
2019/08/01(木) 13:38:37.56
意味が全く分からない
まぁレポートも書いたことないような中学生からの質問なんだと思うが
またゲームの子かな
00213
垢版 |
2019/08/01(木) 21:56:37.55
>>2,15
重複が生じない勤務指定の表なら計算式でなんとかできるんじゃないかな、と思う。
「重複が生じない」とは、
日が2個ではなく 日a、日bのように分けるとか(早、遅、公も同じ)、
階が異なる勤務指定(別シート)もすべてまとめてひとつのシートにしてしまうなどということです。
 その代り、勤務指定に階の情報も含める必要があるので 1早a、2早aみたいに
 細かく分けることになります。
計算式だけでちょっとつくってみました。見てもらったほうが早いので、画像をupします。パス:excel
https://dotup.org/uploda/dotup.org1911186.png.html
別シートの参照はまだ入れてません。
0024名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 16:54:31.52
とても簡単な話なんでしょうが解決できません。

A1:AM9:00 B1翌AM9:30 C1にA1~B1の間の22:00〜5:00の時間数を抽出したいです。

17:00〜翌9:00ってのはできたんですが24時間超となるとできませんでした・・・ 
 
002524
垢版 |
2019/08/02(金) 17:04:14.04
すいません。解決しました。
002624
垢版 |
2019/08/02(金) 17:21:21.33
何度もさーせん・・・だめでした・・・教えてください。
0027名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 17:58:44.45
>>24
時間軸に沿って並べると
ア 当日の09:00 A1セルに入力
イ 当日の22:00
ウ 翌日の05:00
エ 翌日の09:30 B1セルに入力
でいいんですよね? であれば、質問にあった「A1〜B1の間の」の部分は無視して
単純に上記イ〜ウの時間数の計算でいいのでは?
0028名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 18:06:37.48
>>27
ありがとうございます
そのように、セルを分けることができたらよいですが
膨大な人数及び入力者はそれぞれ、なので
入力してもらえるセルはA1とB1のみなんです。

せめてB1を33:30としてくれたら助かるんですが
それも望めません・・
0029名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 18:24:55.96
>>28

当日の09:00 や 翌日09:30 が可変データで、当日の22:00と翌日の05:00が固定データということですか?
>>27で示した時間軸の並びが変わることもあるということ?
003129
垢版 |
2019/08/02(金) 18:35:01.65
>>28
時刻として入力されたデータを「翌日の時刻」として扱いたいのであれば、+1するだけです。
当日の09:00から翌日の09:30までの時間は、=B1+1-A1 で計算できます。
B1+1 で、B1の時刻は”翌日の”という意味になるわけです。
ところが表示されるのは 0:30、そこでセル書式を h:mm から [h]:mm に変更します。
[h]は、24時間以上の時間数を 日 へ繰り上げずにそのまま表示する書式設定のこと。
0032名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 18:40:09.44
>>31
ありがとうございます
+1まではわかりました。

=MAX(MIN(29/24,B1+(B1<A1))-MAX(22/24,A1),0)
これで深夜帯拾ってます。どこに+1すればよいですか?
0033名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 18:41:40.84
>>30
可変データであれば、時間軸の並びは変わる可能性があるってことですよ。
ア 当日の22:00
イ 当日の23:00 A1セルに入力
ウ 翌日の05:00
エ 翌日の09:30 B1セルに入力
A1セルに入力する時刻が当日の0:00〜23:59までの範囲の値をとる可能性があれば、
上記のように、A1セルの値(可変値)と当日の22:00(固定値)の並びが逆転することがある。
このとき、求めたい時間は当日の23:00〜翌日の05:00ということになる。

並びが逆転しないんであれば、当日の22:00(固定値)〜翌日の05:00(固定値)の時間は
7時間で一定、Excelの出番はない。
0034名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 18:48:36.34
>>32
/24 の意味がわからない。
セルに時刻として入力したら、24時間を数字の1としてみなします。これをさらに24でわったらダメです。
時刻として入力したセルから時間数(2時間なら数字の2として)を求めたいのであれば、逆に ×24 すること。
003534
垢版 |
2019/08/02(金) 19:02:57.38
>>34
勘違いしてた。時刻としての22、29(翌日の5時)を24で割って時刻値にしてたのね。
0036名無しさん@そうだ選挙にいこう
垢版 |
2019/08/02(金) 19:09:19.75
>>32 の式をそのまま =MAX(MIN(29/24,B1+(B1<A1))-MAX(22/24,A1),0)

改良した式        =MAX(MIN(29/24,B1+1+((B1+1)<A1))-MAX(22/24,A1),0)
>>31
 B1+1 で、B1の時刻は”翌日の”という意味になる
と書いたとおりです。
0042名無しさん@そうだ選挙にいこう
垢版 |
2019/08/05(月) 01:53:01.58
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

もとから入っているユーザー設定リストを削除、もしくは無視させる方法はありませんか?
0043名無しさん@そうだ選挙にいこう
垢版 |
2019/08/05(月) 02:16:43.72
できないですね
0048名無しさん@そうだ選挙にいこう
垢版 |
2019/08/05(月) 08:16:29.10
>>46
カスみたいなサイト。もう見るな

lngIn = strIn   '数値型への変換
変換しても何の意味もない
数値型の「確認」にして数値型でなければ終了という処理にしなければならない

lngTotal = 0   '合計を初期化
これは必要
明示的にやっておいて損はない、というかやらないと大抵良くない事になる。俺も絶対にする
005024
垢版 |
2019/08/05(月) 08:34:50.14
>>36 37
ありがとう。

早速試してみたよ
しかしながら問題が・・

A1:AM9:00 B1:翌AM9:30

この時は、お二人が教えてくれたのでできました。
でも
A1:9:00 B1:18:00
という場合にも、深夜帯が無いのにC1:7:00となってしまう。
ここはC1:0:00となってほしい。

>>37
のはtextは要らなかったので消してやってみたけど、上の問題が生じます。
0051名無しさん@そうだ選挙にいこう
垢版 |
2019/08/05(月) 11:05:33.82
>>50
>>27,33 をよく見てほしい。 A1セルには当日の時刻、B1セルには翌日の時刻として書いています。
>>36にも B1+1 で、B1の時刻は”翌日の”という意味になる と書いています。
B1の時刻は翌日であるという前提なので、18:00の場合は 翌日の18時 とみなして計算してるので、
当日の9時〜翌日の18時の間の22時〜翌日の5時である7時間を返すのは当然。

B1も当日の時刻が入力されるのであれば、当日と翌日の境の時刻を明示する必要があります。
例えば、勤務開始時刻は9時、かつ
勤務開始時刻から24時間を超える終了時刻(B1)はありえない、ということであれば、
B1がとりうる当日の時刻は 9:01〜23:59 で、翌日の時刻は 0:00〜8:59 ということになります。
計算式の中の B1+1 の +1 の部分をB1の値によって +1 するかしないかを調整すればいいです。
計算式の中に2か所ある B1+1 を B1+(B1<TIMEVALUE("9:00"))*1 に変えてみてください。
005251
垢版 |
2019/08/05(月) 11:13:17.18
>>51
当日9時〜翌日9時という24時間勤務がありうるのであれば、
>>51で書いた
B1がとりうる当日の時刻は 9:01〜23:59 で、翌日の時刻は 0:00〜8:59 ということになります。 を
B1がとりうる当日の時刻は 9:01〜23:59 で、翌日の時刻は 0:00〜9:00 ということになります。 に変更し、
>>51の最後の行は
計算式の中に2か所ある B1+1 を B1+(B1<=TIMEVALUE("9:00"))*1 に変えてみてください。 に変更します。
005351
垢版 |
2019/08/05(月) 11:38:26.75
>>50
念のため、A1(開始時刻)はかならず当日の時刻になりますか?
ありえるのかどうかわかりませんが、深夜0時以降の開始時刻を指定した場合、
現在の計算式では、当日でのA1の時刻〜終了時刻(B1)の時間で計算してしまいます。
例えばA1に1:00、B1に6:00と入力すると、本来なら5:00となるべきところ、7:00という
計算結果になります。
0054名無しさん@そうだ選挙にいこう
垢版 |
2019/08/05(月) 12:24:10.48
>>48
返信ありがとうございました。
まだVBAをかじり出した程度なので手探り状態です。構文を段階的に学べるおすすめのサイト、書籍などはありますか?
005524
垢版 |
2019/08/05(月) 12:52:53.89
>>53
何度も詳細にありがとうございます
A1は確実に当日です。
005624
垢版 |
2019/08/05(月) 13:08:16.31
>>53
=MAX(MIN(29/24,B1+(B1<=TIMEVALUE("9:00"))*1+((B1+(B1<=TIMEVALUE("9:00"))*1)<A1))-MAX(22/24,A1),0)

この式に変えてみましたが、c1は0:00になりますね・・・
また、これは始業を9:00に固定した場合だと思うのですが
始業は当日の範囲で0:01〜23:59までばらばらです。
005724
垢版 |
2019/08/05(月) 13:13:55.98
>>53
新しいシートで実験するとできました。
すいません。
005824
垢版 |
2019/08/05(月) 13:21:08.46
>>53
いや・・・9:00から翌9:30だとできないですね・・
9:00から翌6:00とかだとできるんですが。

何度も申し訳ないので整理させてください
A1に入るのは0:00〜23:59
B1に入るのは0:01〜翌17:00

例えば
8/1の0:00から23:59までの間に始業

終業は8/1の0:01から8/2の17:00の間

という場合に、一つの関数で8/1の22:00から8/2の5:00
までの時間数を抽出する、というこです。
0059名無しさん@そうだ選挙にいこう
垢版 |
2019/08/05(月) 14:03:06.46
>>58
A1に9:00、B1に9:30と入力して、B1は当日の場合もあるんであれば、
当日の9時から9時半までの30分勤務の場合と
当日の9時から翌日9時半までの24時間30分勤務の場合という
2通りが考えられます。よって、どちらになるのかの条件を指定する必要があります。
もう一度>>51をみてください。B1に入力された時刻を当日と翌日のどちらで判定するかの
閾(しきい)値をしてしなければなりません。
たとえば、終了時刻が当日の12時より前はありえないのであれば、
2か所の TIMEVALUE("9:00") を TIMEVALUE("12:00") に変更すればいいはず。
0060名無しさん@そうだ選挙にいこう
垢版 |
2019/08/05(月) 19:45:32.29
>>50
>>38はAが当日、Bが翌日の前提で作った式だからそりゃできないよ
Bが当日になったり翌日以降になったりするのなら、それが判別できる何かがないと計算のしようがない
日付用のセル作るとか、時刻のセルを日時にするとかね
てかそれ人間が見る表としてもいつの時間なのか入力した人しかはっきりわからなくね?
006124
垢版 |
2019/08/06(火) 07:36:29.15
>>59
やってみます

>>60
出勤簿なんで、前提として58の範囲に収まるので
人間は判断つきます
0064名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 11:54:52.05
33:30と入力させるのは無理かもしらんが、
「翌」チェックボックスとか日付の入力は
逆に普通に入力させるべき事項じゃねーのこれw
0066名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 14:43:05.29
当日退勤の列と翌日退勤の列をつくればいいんじゃない?
0068名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 15:28:02.38
チェックボックスって連続コピーで計算式が出来なさそうなイメージ
0069名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 17:20:11.61
チェックボックスと言うよりオプションボタンだな
たとえば男か女のどちらかを押さないと氏名を入力出来ないように入力規則を設定し記入もれを防ぐのと同じ

動作はリンクさせたセルの値が変化するだけ
押されてない状態は空白、当日を押せば1、翌日を押せば2って具合だ
0071名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 18:14:42.84
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


計算式の連続コピーに関する質問です

◯のところのシートに計算式A1/B1、一つシート開けてその下の◎のシートに計算式A2/B2を入力し、また一つ空白にしてその下にA3/B3…っていう連続の計算式を入力をしたいです。
しかしオートフィルを利用すると、A3/B3としたいシートがA5/B5に、A4/B4としたいシートがA6/B6、A5/B5としたいシートがA9/B9…といった感じになります。

もちろん空白をなくせばしっかり連続の計算式が入力できますが、空白を1シート作った上で連続の計算式を入力する方法はありますか?(オートフィルを使わなくても大丈夫です)
0072名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 18:21:50.23
画像が見れないな
0076Manbow
垢版 |
2019/08/06(火) 19:39:30.50
>>71
方法1
A10に 
=OFFSET($A$1,(ROW()-ROW($A$10))/2,0)
A10:A11を選択してずらずらっと下に連続コピー

方法2
A10に0を入れる
A10:A11を選択して下にずらずらっと連続コピー。これで一つ飛ばしの連番ができる。
B10に 
=OFFSET($A$1,$A10,0)
B10:B11を選択してずらずらっと下に連続コピー

ということかな?
あとは工夫で
0078名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 19:58:19.68
>>71
単純にコピーするだけでいいんだな?
仮にC1〜C10に式を入れるとして、D列を作業列とする
@C1〜C5にオートフィルで数式入れる
A = を☆とか数式に無い文字に置換
AD1〜D5に1〜5を入れる
BD6〜D10にAを貼る
CA〜D列をD列昇順で並べ替える
DD列削除
E☆を=に置換
0079Manbow
垢版 |
2019/08/06(火) 20:05:37.90
>>77
>>73の画像の〇があるアドレスが不明だったのでA10と勝手に決めました
0082Manbow
垢版 |
2019/08/06(火) 20:21:17.93
>>80
>空白を1シートx(セル)作った上で連続の計算式を入力する方法はありますか?(オートフィルを使わなくても大丈夫です)
という要望だったのでわかりやすく原理の説明をしたわけです。

あとは工夫で
頭つかってね
0085名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 20:28:18.34
一行おきに空白をセルを挿入するアドインがあるから
それを使っちゃうな 手っ取り早いしw
0087名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 21:30:38.82
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A列からC列までの合計とE列からG列の合計が間違っていたら
メッセージを出す関数を作っています。

=If (SUM(A1:C1)=SUM(E1:G1),"","エラーメッセージ")
まではあっさり書けたのですが、
行が、例えば100くらいになった(A100:C100とE100:G100)場合、
どうすればいいのでしょう。
まさか、If関数のカッコを外側にどんどん追加して書くわけにはいかないし。
やっぱり、マクロの出番でしょうか?

ついでに、row関数で、どの行が間違っているかわかれば楽だと思って試行錯誤中です。
これも、=ROW()&"行目"まではあっさり書いたのですが、
if関数と合わせる関数が書けなくて。

長々とすみません。
0088名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 21:54:18.61
>>87
H列に書くと思うから、
I1に=COUNTIF(H:H,"エラーメッセージ")
とかやるとか

まぁフィルタかマクロか、その辺はルーチン次第かね
自分でその場で治すならフィルタかけてぽちぽちやれば終わりだし、
数式触られたくないならマクロが良いだろう
0089名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 21:56:09.92
>>87
>=IF(SUM(A1:C1)=SUM(E1:G1),"","エラーメッセージ")
という計算式をどのセルに入力してますか?

”作業セル”というのを知ってますか?上記の例で言えばF1セルに上記の計算式を入力し、
F1セルを下方向へフィルコピーするだけで
F2セルの式 =IF(SUM(A2:C2)=SUM(E2:G2),"","エラーメッセージ")
F3セルの式 =IF(SUM(A3:C3)=SUM(E3:G3),"","エラーメッセージ")
のように、手間はかかりません。

もし、既存の表に作業セルを設定することが難しいのであれば、エラーメッセージの代わりに
”セルに着色”という手もあります。
009089
垢版 |
2019/08/06(火) 21:57:36.00
>>89
アルファベットの順番間違えたorz
作業セルのF1 は H1 に読み替えてください。
009287
垢版 |
2019/08/06(火) 22:30:51.36
>>88-91
迅速なレスをありがとうございます。
そして、まとめてレスですみません。

H列やI列に、下に引っ張って結果を出したら
できれば特定のセルだけに結果を出してほしいと言われて。
〇行目が違う、という感じで。

今のところ、SUM関数で全体を見て、
どこが違うかはわからないけれど違う箇所がありますよ、
で妥協してもらっています。

ちなみに、1銭もお金は動いていません。
知り合いに頼まれて試行錯誤しているだけなので。
009489
垢版 |
2019/08/06(火) 22:38:58.96
>>92
相違がある行の(行全体でもA列だけでもいいけど)セルの着色じゃダメなの?
0095名無しさん@そうだ選挙にいこう
垢版 |
2019/08/06(火) 22:40:13.50
>>92
それは間違ってる箇所は1つって前提?
1つでも複数でも、チェック用の列作ってそこから答えを出すってのが一般的なんだがその列を作るのもNGなん?
でないと無駄に複雑になるが
0096名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 01:43:06.01
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否


@UCL・LCLのある管理図(グラフ)でエリアごとに色分けする事は可能でしょうか?
規格外のエリアは赤、UCL・LCLのエリアは黄色、規格内のエリアは緑といった感じです
(紙にプリントしてプロットするので薄い赤、黄色、緑です)

今は管理図の各エリアにテキストボックスを貼り付けて色付けしていますが、
規格値の見直しがあった際にテキストボックスの位置を調整するのが何かと面倒くさいので・・・

A規格値が100+35/-20(80〜135)でUCLが120、LCLが90の時に規格外の時はセルを赤にして黒字でNG、
UCL・LCL外れの時はセルを黄色にして文字は黒字で管理値NG、規格内のときはセルを緑にして黒字でOK
と表示させる方法を教えて下さい
0097名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 06:19:04.69
>>96
UCL・LCLはどうでもよくて、
単にグラフの既定値に色分けするってこと?
標準機能では無理だ
vbaでも結構めんどくさい気がする。おそらく最初の高さ等は手動で算出することになる
0098名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 06:25:19.01
>>96
@はこのサイト参考にしてみるといいかもね
https://www.waenavi.com/entry/20190124/1548275841#1折れ線グラフの場合-1

A
>「規格外の時はセルを赤にして黒字でNG」
>「UCL・LCL外れの時はセルを黄色にして文字は黒字で管理値NG」
>「規格内のときはセルを緑にして黒字でOK」

・これはグラフじゃなくリストの方?

・具体的に「セル」がどこのセルを指しているの?この説明では分からん

・ちなみに何かを書いているセルに、色を付けるのは可能だけれど、文字を上書きするのは関数では無理
0099名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 10:07:43.14
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

文書を上書き保存するたびにOneDriveにアップロードするようになってしまったのですが
これをやめさせる方法はありますか?
0100名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 10:20:48.92
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 否

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

あるセルへの入力で、
基本的にはダウンリストからの選択だけど直接入力も可能にしたい、
というような場合は、どういう設定にするのが一般的なんでしょうか?

例えば、性別欄で、基本的にはダウンリストから「男」「女」を選ばせたいのだけど、
直接入力で「どちらでもない」とか「答えたくない」「秘密」など、自由に入力することも
可能にしたいです。
実務で使い込んでおられる方は、こういう場合はどうしてますか?
010296
垢版 |
2019/08/07(水) 12:32:37.24
>>97>>98
@は諦めます
Aの質問はA1のセルの値に対してB1に「OK」「管理値NG」「NG」と表示&セルを色付けです(厳密にはA1自体は別途計算された値が入ります)
0104名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 15:04:25.03
こんな風に2列になっていて、日付と項目があり、最後に合計が書いてあるシートがあるのですが

https://i.imgur.com/keGTaW5.png

日付 金額  日付 金額
項目 XXX   項目 XXX
項目 XXX   項目 XXX
項目 XXX   項目 XXX
項目 XXX   項目 XXX
合計 ZZZ   合計 ZZZ

※項目の数は可変


これを ↓ こんな風に変換するにはどうすればいいのでしょうか?

日付 ZZZ
日付 ZZZ
日付 ZZZ
日付 ZZZ
0106名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 16:13:29.78
>>105
すいません、JK列はこちらの画像を作るために手動で作りました。

質問としては、JK列をどうやって作ればいいのかってことになります・・・
0109名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 19:23:10.08
>>104
あとあとのこと考えると、元帳をさっさと
日付 項目 金額
で正規化・DB化して、
ピボットテーブルで日付別に集計した方が
良さそうだけど・・・
0110名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 19:56:14.29
>>106
各日付と合計セルをJKから参照すればいんじゃないの?もっと複雑な話?

>>108
dim i as long
with 対象シート
for i=2 to 最終行
 if .cells(i, "O").value = .cells(i, "AF").value then .rows(i).delete
next
end with
※速度無視の単純コードなので行数増えれば増えるほど遅い
011192
垢版 |
2019/08/07(水) 21:51:09.50
遅くなってすみません。

>>93-95
何度もありがとうございます。

着色で妥協していただくか、マクロを組むか…。
チェック用のシートを作って動かしていたんですが
違う場所をわかるようにして! Excelで作れないの?
となってしまって困っていました。

皆様のレスを見せて妥協していただきます。
0115名無しさん@そうだ選挙にいこう
垢版 |
2019/08/07(水) 23:32:17.36
>>109
はい、そうなのですが、過去3年にわたって運用されていたので、手動で書き直すのは至難なんです・・・

>>110
項目数が可変なので、JKからは簡単に参照できないんです・・・
0120名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 04:32:39.31
【1 OSの種類         .】 Android**
【2 Excelのバージョン   】 最新
【3 VBAが使えるか    .】
【4 VBAでの回答の可否】

Androidでシートを縮小しても、ほぼほぼ見える範囲が変わらないんですが、何かいい方法ないですか
0121名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 13:40:14.84
【1 OSの種類         .】 Windows2010
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

振り仮名表示してる漢字が、直前に平仮名・カタカナ・漢字を入力すると消えてしまい、どうしたら解決するでしょうか?
英字は大丈夫なので、編集するときは直前に英小文字を挟んで、その小文字の前から入力してます
ググっても同じ症状が出てこないです
0122108
垢版 |
2019/08/08(木) 15:29:27.06
>>110

↓だと「コンパイルエラー Sub または Function が定義されていません。」になります


Sub Macro_test()

Dim i As Long
whis Sheets("tanka")

For i = Cells(Rows.Count, "i").End(xlUp).Row To 2 Step -1
If .Cells(i, "O").Value = .Cells(i, "AF").Value Then .Rows(i).Delete
Next
End whis
End Sub
0125名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 21:41:40.38
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 可

https://imgur.com/nlK46RG

このような形に簡単に並べ替えてまとめたいのですが、どのような方法があるでしょうか?
どんな方法でも構わないので教えていただければ よろしくお願いします。
0130名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 21:59:40.53
sumでいいんじゃないの
0131名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 22:01:01.08
説明しにくいから画像には行番号列番号もいれたほうがいいよ
0134名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 22:29:45.36
Excel画面標準の行と列のラベルのつもりだったがそうきたか
まぁ全く問題ないけどね
0135名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 22:38:22.77
H18に =sum(H1:H6) でいいんじゃないの? 
0136名無しさん@そうだ選挙にいこう
垢版 |
2019/08/08(木) 22:53:00.90
select f1, f2, f3, f4, min(f5) as f5, min(f6) as f6, null as f7,
    max(@) as @, max(A) as A, max(B) as B,
    max(C) as C, max(D) as D
from [Sheet1$]
group by f1, f2, f3, f4

こうじゃね?wwwww
0137名無しさん@そうだ選挙にいこう
垢版 |
2019/08/09(金) 23:07:59.54
>>129
数式なら単純にSUMで範囲を足すだけ
単純な表だからピボットもウィザード通りにやるだけでできる程度だが、SUMで事足り過ぎるから敢えてピボットでややこしくすることはない…
0138名無しさん@そうだ選挙にいこう
垢版 |
2019/08/10(土) 13:47:07.11
【1 OSの種類】 Windows10
【2 Excelのバージョン】 Excel office365
【3 VBAが使えるか】 はい(多少程度)
【4 VBAでの回答の可否】 否
webからの情報取り込みをしてexcelでリストを作成したい
取り込みたいのは文字と数字のみ
webの情報は表になっておらず形態はてんでバラバラ
webクエリ機能を使って取り込み可能かどうか、また他に何か方法はあるか?
手間など経験値がある人いたら教えてください
0140名無しさん@そうだ選挙にいこう
垢版 |
2019/08/10(土) 14:28:55.13
>>138
補足
ロケーションリストを作成する

例えば下記のように地図からインフォを開けないとアドレスが出てこないものもあれば
https://www.starbucks.co.uk/store-locator?map=51.508866,-0.125227,12z&;place=london

ページごとのLocation
http://espressovivace.com/retail/brix/

1ページにLocation一覧
http://www.caffevita.com/location

ここにある名称/住所を取得してロケーション一覧を作る
事後作業として住所から緯度経度を調べる

各企業ごとにページの作りはバラバラという状態だがそこはさておき最終的にexcelで加工して一覧に出来れば良い
まず取り込む方法を調べたいというところ
0143名無しさん@そうだ選挙にいこう
垢版 |
2019/08/10(土) 15:10:51.62
>>141
うん
コード読み込んでこのタグで切るとか
企業ごとの規則性を把握して処理するかというところなんだけど
ただそこにこだわらずwebクエリというのを使ったことがないので誰か知ってたら教えて欲しいなと
ネックは地図からしかロケーションを見られない企業があること
どこが取得済みかのチェックができない…

あとはロケーションごとにページが分かれているところ
数が多くて大変
ここはVBAで全パラメーター終えるまで処理とか方法あるだろうか?と想像している

ただ単純取り込みはVBAじゃなくてwebクエリでできるならやりたい
0144名無しさん@そうだ選挙にいこう
垢版 |
2019/08/10(土) 15:38:05.19
>>143
便宜上ロケーションリストを例に出したが実際作るのは気象情報に関すること
かなりのページ数あるからそこはやはりVBAか
ちょっと調べてみる
0145名無しさん@そうだ選挙にいこう
垢版 |
2019/08/10(土) 16:35:33.27
>>138
webクエリは表面に見えている情報しか取り込めない。まぁ無理だと思う
vbaならhttpで簡単に取得できる
スターバックスの場合、114行目にjson形式で全店舗格納されてるからパースすれば楽勝
0146名無しさん@そうだ選挙にいこう
垢版 |
2019/08/11(日) 14:09:41.12
よろしくお願いいたします。

A1セルにいくつかのセルの合計数値が入っています。

B1に、="合計は" & A1 & "円です" と表示させたいです。
しかも、A1の部分を、 \**,***,***のような、一般的な通貨表示の形式にしたいです。
B1にどう書けばいいでしょうか?
0152名無しさん@そうだ選挙にいこう
垢版 |
2019/08/11(日) 20:43:42.41
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Googleスプレッドシート
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

配列数式ArrayFormulaを使って複数行に関数を反映させたいのですが
同じ列の特定の行から下は別のデータが入っていて上書きエラーになります。
配列数式ArrayFormulaを特定の行までという指定をすることは可能でしょうか。
0156名無しさん@そうだ選挙にいこう
垢版 |
2019/08/12(月) 00:02:22.85
>>154
分かった、答える。答えるから…
だからそういう態度やめて…

基本的にみんな善意で答えてくれてるんだから
あんまり答えてもらって当然、みたいな態度はね…
別にスプレッドシートの質問に答えちゃ駄目とかいう
ルールもないし、かといって質問してもいいルールも
あるワケじゃないけど、ここが何のスレなのかご存知のハズ。
回答してくれる人達みんな機械的なルールに則って
答えてるワケじゃないんだから…たまにはwordの
質問なんかにも答えてくれることだってあるかもしれない。
でもそれを当然の様に思っちゃダメですよ、それは
親切な人が偶々(たまたま)答えてくれたに過ぎないんですから。
前スレでは確かに、スプレッドシートの話しがチラホラ出ていたし
質問もあったね、アナタと同じテンプレの方で
その質問には回答が付いてなかったように思います。
いやもちろんアナタが、回答も付かないのにスレ違いの質問を
2回繰り返すような愚を犯すなんて私は思ってないから…

すいません、質問のお返事でしたね…

答えは可能です。これでよろしいでしょうか?
0158名無しさん@そうだ選挙にいこう
垢版 |
2019/08/12(月) 02:20:09.25
【1 OSの種類 】 Windows10
【2 Excelのバージョン 】 WPS Spreadsheets
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】否

数量が変化する表から2つの条件を満たした指定列のセルの文字を返したいのですが同じものが複数存在します

A B C
1 1 あ
1 1 あ
1 2 い
2 1 あ
2 1 い
2 1 い
2 1 い

A列=1 B列=1 ならば「あ」
A列=1 B列=2 ならば「い」
A列=2 B列=1 ならば「い」
みたいに出来る方法を教えて下さい
0162名無しさん@そうだ選挙にいこう
垢版 |
2019/08/12(月) 09:07:04.61
>>161
言葉足らずで申し訳ない

別のシートのセル
A1=1 B1=1 C1=取り出したい文字列
A2=1 B2=2 C2=
A3=2 B3=1 C3=

てな感じで条件に合った文字だけ排出したいんです
各条件が1個しかない場合は分かるのですが複数の場合はエラーが出ます
条件が一致してる文字は常に同じなので一度纏めてからの方が良いのでしょうが纏めずに排出したいです
0164名無しさん@そうだ選挙にいこう
垢版 |
2019/08/12(月) 09:23:48.07
>>162
>各条件が1個しかない場合は分かるのですが複数の場合はエラー
これキングソフトの独自仕様。Excel、googleスプレッドシートではエラーが出ない
せめてgogleスプレッドシートを使った方が良い
あと、キーをまとめずにやる方法はvbaしかない
作業列を作ればキーをまとめなくてもいい方法もあるけど
キングソフトの独自仕様までは付き合えないかな
0165名無しさん@そうだ選挙にいこう
垢版 |
2019/08/12(月) 10:34:04.44
>>164
なるほど
EXCEL 2007で作ります

=VLOOKUP(A1&B1',sheet2!A:C,3,0)だとエラーになります
答えが同じ文字でも複数存在するからですよね

良い方法をご教授下さい
0171名無しさん@そうだ選挙にいこう
垢版 |
2019/08/12(月) 11:03:30.25
検索条件のセルは検索範囲と別途シートで別行にあるのが問題なんでしょうか?
K3=1 A3=1

=VLOOKUP(K3&A5,sheet2!A:C,3,0)


実際はこんな感じです
0173名無しさん@そうだ選挙にいこう
垢版 |
2019/08/12(月) 11:28:15.18
>>172
残念ですが会社のなんであげられらないっす


一度sheet2のAとB列を結合させてC行に表示させ検索範囲をC:Dにして2行目の値を返したら複数あっても最初のセルが返りました

作業行を作らず出来る方法があるのでしょうか? 無ければ作業行を入れて使用します
0177名無しさん@そうだ選挙にいこう
垢版 |
2019/08/14(水) 16:13:58.59
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel 2016

ジョーシン電気で、エクセルのシリアル買いました Win10はノートPC付属の正規品です
エクセルを開くと必ず「3日以内にライセンス認証しろやゴルァ」の画面が表示されます

認証の画面でシリアルを入れると、「すでに登録されたシリアルです」みたいに表示されて
手詰まりになりました どうすれば、この問題を解決できますか? よろぴこ
0182名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 08:07:58.23
生粋のねらーですね
重症です
0183名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 17:09:36.28
日付を入力する際、「30125」と入れれば「H30.1.25」.「31815」と入れれば「R1.8.15」と変換されるようなセルの書式設定等ありませんか?
0189名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 18:16:01.60
MOS受けようと思って365solo買ったのですが、これって2019ですよね?
試験は2016みたいだけど、もしかして自分やらかしちゃったかんじ?
0192名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 19:52:23.96
>>185
ありがとうございます、実現できれば関数でも大丈夫です
31125などは0入れて6桁にすればいいんですよね?

それと別件の質問ですが、VBAでIEを操作するために既に開いている画面のHTMLを取得した後、リンククリックで遷移した先の画面で、更にその画面のHTMLを取得する工程は必要ですか?
うまく伝わらなかったらすみません
0193名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 21:02:43.37
MOSの資格を持っているのですが本当に基本的なことしかできません
名前だけ聞いてすごくできると思われるといろいろ困ることがあるのですが
一応取った資格なのに隠すのも損な気がします
この程度の資格は表に出さないほうがいいのでしょうか?
たいしたことはないわりに名前は立派なのも困ります
0196名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 21:21:13.81
>>193
持ってることをアピールするってことはその知識があるってことをアピールすることになるわけだから、そう思われて困るなら敢えて出す必要なくない
0197名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 21:52:27.42
>>192
>VBAでIEを操作するために既に開いている画面のHTMLを取得した後、リンククリックで遷移した先の画面で、更にその画面のHTMLを取得する工程は必要ですか?
うむ、よくわからん

>>193
面接で勉強して資格はとってますが実務未経験ですって言えばいいだけ
隠すのは変だよ
0198名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 22:03:35.60
>>197
わかりにくくてすみません、少し質問を変えます
VBAでページ@内のリンクをクリックし、別窓でページAが開きました
この場合ページAを更に操作するにはページAをVBAで操作できるように改めてHTMLに格納?する作業は必要ですか?
0200名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 22:29:08.92
>>198
確かtarget=_blankは行けるけどwindow.openは無理とか微妙な違いがあったはず
そのページを見てみないと分からない

vba ie 別窓 操作
とかで検索してみて

ちなみに格納するのは変数

個人的にはhrefを取得してもう一回IEオブジェクト作り直した方が手っ取り早いとは思う
0201名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 22:42:38.43
>>196
面接とか履歴書で少しでもアピールするために
とりあえず持っている資格を書いてしまうと
誤解される原因となってしまうことがあります
>>197
一応実務が全く未経験ってわけではないのですが
自分でマクロ作ったりとかそういうのはできないので
実力的には普通の人と変わらないので
その辺がいろいろややこしいです
0203名無しさん@そうだ選挙にいこう
垢版 |
2019/08/15(木) 23:35:34.40
>>200
なるほど・・調べてみますね

さらに別件ですがダウンロードウィンドウをVBAで操作するにはどうしたらいいですか?
sendkey だとうまく行かないのですが・・
0205189
垢版 |
2019/08/16(金) 03:52:53.81
>>191
ありがとうございます、バージョン書いてないので肝冷えて焦ってました
0207名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 07:44:28.79
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
セル内の改行を関数で\マークに置き換えたいのですがどうすればいいですか?

【例】
おはようございます。
今日の天気は晴れです。
明日は雨です。

おはようございます。\今日の天気は晴れです。\明日は雨です。
0208名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 07:50:25.64
置換機能で[Ctrl]+[J]を¥に置換でいけるんじゃない
0209207
垢版 |
2019/08/16(金) 08:25:51.96
>>208
それを関数でしたいんです
0211名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 08:48:43.41
>>207
その工数を減らすのが目的です。
その後にするステップもあるので自動化したいんです。
0213名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 09:25:18.50
>>210
置換じゃダメで関数じゃないとダメだから聞いておるのだ
0214名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 09:26:55.75
>>212
そうなのだ
これでいいのだ
バカボンのパパなのだ
0216名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 09:56:20.23
>>215はカバの逆立ちなのだ
0221名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 12:43:53.47
本は悪手だと思う
サイトに書かれてるのですら最新のIEでは動作しなかったりする
最近勉強し始めた人は複数のサイト調べて自分なりにカスタマイズ出来るようでないとIE操作系は難しいと思うよ
0223名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 13:15:44.30
>>212
ありがとうございます。天才ですね!
0224名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 13:18:46.66
IEのバージョンも参照設定も書かれてないことが多いね
参照設定次第でコード変わるから同じ事やっててもサイトによって書いてるコードが違う
0225名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 14:59:47.13
コードは長くなるけどバージョンが違っても参照設定しなくても動くように書く方法もあるんで、あとは書く人の能力とか方針次第なんだよなあ
0229名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 22:36:58.94
>変数の重複はカウントされますか?
ちょっと良く分からないですが、同じ名前の変数が混ざるかどうかって話しなら
スコープ、ローカル変数、グローバル変数で検索してみて下さい
0230名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 22:44:54.61
>>229
例えば
sub hoge()
call 1
call 2
end sub

で、call1.2の中に同じ変数宣言がある場合、その変数宣言は1で一旦解放されますか?
それとも解放されない=変数重複のエラーが出ますか?
0231名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 23:02:06.56
>>230
宣言を解放するの意味が分からない
変数にnothing入れて解放しても宣言が重複するとエラーになる

無理に分からない単語を使わない方が良い
ってか、試したほうが早いと思うけどエラーにはならない
ちなみにstaticだと変数の中身は継続するけど関係ないかな

Sub foo()
For i = 1 To 10
Call a
Call b
Next
End Sub

Static Sub a()
Dim ax
Dim bx
ax = ax + 1
Debug.Print ax
End Sub

Sub b()
Dim ax
Dim bx
bx = bx + 1
Debug.Print bx
End Sub
0232名無しさん@そうだ選挙にいこう
垢版 |
2019/08/16(金) 23:37:55.98
>>230
プロシージャ内で宣言した変数はプロシージャ内だけのものなので被ってても関係ない
変数がstaticな場合初期化はされないが名前被りとは無関係
0234名無しさん@そうだ選挙にいこう
垢版 |
2019/08/17(土) 12:19:14.95
>>145
遅レスでたいへんスマン
見てるのはchrome?
sourceの中見てみたけど114行目に該当するところにアドレス全店仕込まれてるのが分からず
もう少し詳しくどこを見るか教えてくれるとありがたい
0235名無しさん@そうだ選挙にいこう
垢版 |
2019/08/17(土) 14:13:53.91
>>234
たぶん>>145は早合点してると思われる
114行目のjsonに含まれるURLはショップのリストではない

こういう動的なサイトからデータを抜き出すには、パケットを解析してWeb APIを調べるぐらいしかないと思う
勝手なWeb API呼び出しが禁止されててデータの取り出しが絶対的に不可能なケースってのは、今のところあんまりないと思う
このあたりの話になるとExcelは関係なくなってくるし、VBAを使わないと難しいことも多いんで、あきらめるか方針を変えて貰うしかない
0236名無しさん@そうだ選挙にいこう
垢版 |
2019/08/17(土) 15:10:28.72
>>235
だよね、いくら見てもないはずだw
たしかにもうexcelの範疇じゃないな
かといってvbaでないと、というものでもないから範囲広げて考えてみるわ
サンキューでした
0237名無しさん@そうだ選挙にいこう
垢版 |
2019/08/17(土) 19:47:37.38
>>227
そういやあれ何だろな。
Cells(1, Rows.Count).End(xlUp).Rowって、最終行特定のテンプレみたいになってるけど、
フィルタ掛かってると使えないし、UsedRenge〜を使う応用編だと検索設定変わっちゃうし、
何かまともな方法無いんかな。
しょうがないから、俺、ADOのレコード件数で判定してるわ。
0239名無しさん@そうだ選挙にいこう
垢版 |
2019/08/17(土) 21:34:22.90
VBA初心者でこれから勉強を頑張りたいと思っているものですが、初心者で取っつきやすい書籍を数冊教えて欲しいです。今はExcelVBAのツボとコツがゼッタイわかる本の超入門とプログラミング実践編の2冊を読んで実際にVBEに入力してみた感じです。よろしくお願いします。
0240239
垢版 |
2019/08/17(土) 21:38:35.45
あとExcelVBAふりがなプログラミングとたった1秒で仕事が片付くExcel自動化の教科書の2冊も読みました。これから先の勉強法なども教えていただけると嬉しいです。
0241名無しさん@そうだ選挙にいこう
垢版 |
2019/08/17(土) 21:41:58.82
>>240
それだけ読めば十分初心者じゃなくなってると思う
VBAの機能を何もかも全部覚えるのは不可能だから、あとはVBAでやりたい仕事ができたら、目的に応じてネット検索すればいい
0242239
垢版 |
2019/08/17(土) 21:52:08.85
>>241
ありがとうございます。

4冊を読んで『たった1秒。。。』は少し難しかったですが、後の3冊は特にわからないような箇所はなかったです。けど自分がイメージしているマクロをすぐに書けと言われても間違いなく書けません。

これからは書きたいマクロをExcel上でどの様な動きをするか箇条書きにして、それをネット、マクロの辞書などを頼りにして書いていくというやり方でいいでしょうか?
0246名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 00:01:35.15
>>242
イメージするのはブックやシートの最終形だ。途中は変な事していなければベタ書きで良い
コードなんてずっと書いてればこなれてくる。vba質問スレかこのスレの過去ログ読んで、実戦形式で取り組んで見ると良い
0247239
垢版 |
2019/08/18(日) 00:16:29.72
質問に答えてくれた方々ありがとうございます。
地道にExcel上での動きを書き出して、それを一つ一つコードで書いてドッキングするという作業に徹したいと思います。確かに本を読むだけじゃなくて実際にコードを書かないと力はつきそうにないですね。先は長そうですが。。。
ありがとうございました!
0248名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 01:20:37.93
【1 OSの種類         .】 Windows7、10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A1に数値を入力してB1に任意のコメントを表示させる方法を教えてください
A1に入力した値が25〜75ならB1にOK
A1に入力した値が26〜30、76〜80ならB1に注意
A1に入力した値が30未満、80より大きいならB1にNG
と表示させたいです
0249名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 01:30:00.41
>>248
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となったけどまぁええか
優先順位が良く分からん
0251248
垢版 |
2019/08/18(日) 02:07:14.04
間違えました

規格 50±30
ACT 50±25
になります

A1に数値を入力してB1に任意のコメントを表示させる方法を教えてください
A1に入力した値が25以上〜75以下ならB1にOK
A1に入力した値が25未満〜20以上、75より大きい〜80以下ならB1に注意
A1に入力した値が20未満、80より大きいならB1にNG
と表示させたいです
0252名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 02:14:20.01
>>251
規格とか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","")
0253名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 04:52:19.00
2016ならIFSを使えたのにね
0255248
垢版 |
2019/08/18(日) 11:35:15.85
>>252
ありがとうございます
IF関数の重ねがけ?がいまいち分らなかったので助かりました

>>253
2016以降だとIFS関数というのも使えるんですね
Win7のサポート切れに伴うPCの入れ替え時にVDI化するらしいですが、
その際にエクセルも2016以降になるかと思います
もっと勉強して自分で出来るようにしていきたいです
0256名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 13:02:03.75
【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
0258名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 14:31:20.93
>>256
入力ミスがあったから直した
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
0260名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 17:36:21.27
>>245
あー単にソースコード見てたのか
たしかに114行目にストアリストはある
ただ100件しか表示されないんだよな…
てことでスレチだし終わりにするわ
0261256
垢版 |
2019/08/18(日) 21:23:53.22
皆様ありがとう。どこがわからないか整理するわ。
ぶっちゃけてどうわからないかもよくわからない。。。
0263名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 23:10:42.76
何なら分かるか(if文なら分かるとかArrayは分かるとかfor文は分かるとか)が分かれば教えようもあるけど全て分からないなら1行ごとの意味を調べた方が良いと思う
ロジックが分からないなら>>259の通り
0265256
垢版 |
2019/08/18(日) 23:34:44.80
For のコードが二個あるじゃないですか?

それは分解して考えた方がいいですよね?すいません、的外れな質問で。。。
0267256
垢版 |
2019/08/18(日) 23:41:42.39
>>266
なるほど、内側からですね。少しねばって見てみます。
0268名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 23:42:47.64
てか、コード読めないならいきなりバラバラに考えずまず1行ずつ追っていって何が行われてるか見ないと意味がわからないんじゃないのか
0269名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 23:44:00.44
>>265
>>259の表を例にとると縦軸のforと横軸のfor
縦軸はArrayに格納されてるあ、い、う、え、お を順番に回す
横軸はArrayに格納されてる2〜4番目を回す
ただ、チーム1が「あ」の時は2〜4番目を回すけど、「い」の時も2〜4番目を回すと いvsい が出来てしまうので
チーム1が「い」の時は3〜4番目を回したい
なので開始の番目を3にする為にチーム2+1をしてる
0271256
垢版 |
2019/08/18(日) 23:50:14.64
みなさんありがとうございます。明日にまたレス頂いた文章を参考に考えます。今日はちょっと自分の中で答えが出そうにないです。それにしてもVBAは奥が深いです。プログラミングを全くしたことない人間はキツイのかなって思いますね。。。
0272名無しさん@そうだ選挙にいこう
垢版 |
2019/08/18(日) 23:51:07.60
for each と普通のforを混在させているのは学習用の教材のため?
学習用にしてはあまりよい例とは思えない。
実用的にはfor eachを使わずに普通のforで統一したほうが構造が理解しやすい
0276名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 00:15:54.85
>>275
なぜかと聞いておる
0278名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 00:50:20.80
>>277
このハゲ
0280名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 02:23:24.40
SplitとかArrayみたいな配列を返す関数を使った時は、配列の範囲をいちいちLBoundとUBoundで調べるのが面倒だからEachで回すけどなあ
慣れるとすごく便利だよ
0282256
垢版 |
2019/08/19(月) 07:25:34.70
このスレの中でスクールなどに通わないで、書籍、ネットのみでVBAを使いこなせるようになった方々の勉強法、またどれくらいの期間勉強しているかなど教えてもらえると嬉しいです。私は上記の本を4冊読んだだけの完全なるど素人です。
0284名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 10:50:03.26
>>282
始めたのは中学の時、最初は友達と一緒にベーマガとか読みながら勉強して、学校の先生や先輩にも色々教えて貰った
高校に入ってからはプログラムを作るバイトを紹介してもらって、仕事しながら覚えた感じ
0286名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 18:41:29.16
for i〜は定数や順序が必要な場合かな
特に特定の条件で行削除などはstep-1が必要になるのでforeachで処理しないほうが良い。見辛い

>>256の場合は両方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
0287名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 19:29:17.93
>>282
必要になるたび随時調べて使ってたら覚えた
VBAに限らず本読んだだけで技術を身に付けるなんて一般人には無理だぞ
4冊読むだけより1冊実際に動かして何か作りながら読む方が圧倒的に身に付く
0288名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 21:15:20.08
https://i.imgur.com/FgTjXv5.jpg

数式で可能ですが項目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
と入力したいです。
数式でなおかつオートフィルが条件。
0296256
垢版 |
2019/08/19(月) 22:18:43.04
返信をしていただいた方ありがとうございました。
今日も今からは答えが出そうにないです。
明日以降に考えたいと思います。
ありがとうございました。
0298名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 22:22:22.60
>>296
間違っているわけではなかったわ。
ただ、慣れてない人が書いた無駄の多いコードなので読みにくくて当然
慣れない内からこんなものを参考にするもんじゃない
0300256
垢版 |
2019/08/19(月) 22:26:43.70
>>299
答えといいますか、コードを読み解くことです。

今日は暑気払いで体調を崩したのでまた明日以降に考えたいと思います。
0306名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 23:15:38.24
この場合は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
0309名無しさん@そうだ選挙にいこう
垢版 |
2019/08/19(月) 23:38:44.61
そのうちほのぴが石田ばりにシャウトしてくれることを夢見てるよ
0310名無しさん@そうだ選挙にいこう
垢版 |
2019/08/20(火) 04:35:28.10
【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を使うことも検討してます
よろしくお願いします
0314名無しさん@そうだ選挙にいこう
垢版 |
2019/08/20(火) 09:40:50.53
>>312
たしかにwすまんです
早朝過ぎてPC開けてなかった
ハイパーリンクを開くところまではわかっていてその後のhtml取得ループをこれから作ろうと思っている
あとで途中までコード書く
0316名無しさん@そうだ選挙にいこう
垢版 |
2019/08/20(火) 10:28:47.06
>>315
どもです
ググったらその方法もあったのでそれも合わせて検討中です
Pythonでやるか?考えてるのでvbaでやることになって詰まったら具体的に書きます
0318名無しさん@そうだ選挙にいこう
垢版 |
2019/08/20(火) 14:32:47.48
>>317
あまりわたしを怒らせないほうがいいぞ
このハゲ!

とりあえずhtmlのbody要素のinnerHTMLを取得するのは分かったが
chromeで開かずにする方法やリンクが存在しないときなどのエラー処置に悩む。
0320310
垢版 |
2019/08/20(火) 17:34:44.28
>>319
このハゲー!違うだろ!
この書き方には問題がたくさんある。

(1) 変数定義で型はちゃんと明示しろ→"As VbMsgBoxStyle"を足した
(2) 4という意味不明のマジックナンバーは混乱のため不可→"vbYesNo)"にした
(3) GoTo文はスパゲティプログラムの温床。→"Do Loop文"にした。

もう一度言う。
こ の ハ ゲ ー !
https://youtu.be/7lxqO9oV9dY

--------------------------------------------
Sub Hage()
Dim Hage As VbMsgBoxStyle
Do
Hage = MsgBox("このハゲー!", vbYesNo)
Loop While Hage = vbNo
End Sub
0321名無しさん@そうだ選挙にいこう
垢版 |
2019/08/20(火) 18:13:04.40
この場合はWhileではなくUntilを使わないとマーの意図が読み取りづらくなる
あと変数にいちいち代入するのは無駄

Sub Tumaran()
  Do
  Loop Until MsgBox("つまらん", vbYesNo) = vbYes
End Sub
0325名無しさん@そうだ選挙にいこう
垢版 |
2019/08/21(水) 01:18:30.28
>>324
VBAでもPythonでもいいけど
Chromeで表示させる意図が分からない
いちいち目検でチェックさせて閉じさせて、閉じたイベントハンドラ取得して、ロジック組みたいって事?
0326名無しさん@そうだ選挙にいこう
垢版 |
2019/08/21(水) 11:46:44.01
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

画像のD列に合計を求めたいのですが、どのような式にすれば画像のような合計値が出せますか?
sumifとワイルドカードでは無理ですよね…
http://imgur.com/Rw10cuX.png
0332名無しさん@そうだ選挙にいこう
垢版 |
2019/08/21(水) 22:06:36.19
ずっとフリーソフトを使っていて最近になってエクセル2016を使い始めたんだが
画面右端のセルが少ししか見えてない状態で、そのセルをワンクリックしてもセルが左に自動的にズレてセル全体が見えるようにはならない仕様なのかな?
ダブルクリックすれば思うような動きはしてくれるけど、設定等とかで変更できるのなら知りたい
0338名無しさん@そうだ選挙にいこう
垢版 |
2019/08/21(水) 23:16:23.65
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010,2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

データを入力してEnterを押すと任意の場所にアクティブセルを移動させる方法はありますか?
A1にデータを入力してEnterを押すとデフォルト設定ではアクティブセルはA2に移動しますが、
A1にデータを入力してEnterを押すとD1に、D1にデータを入力してEnterを押すとB3に・・・といった感じです
0340名無しさん@そうだ選挙にいこう
垢版 |
2019/08/21(水) 23:23:39.76
>>338
無いが、
データを入力するところはA1,A2,A3にしておき、
データを出力するところは
A2=A1
D1=A2
B3=A3
のようにすることは可能
というか俺がやってる

>>339
これネタやぞ
0342名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 00:48:57.42
>>334
マウス禁止ならクイックアクセスなんたらショートカットもどきではなくて各コマンドをショートカットでカスタマイズできる仕様にして欲しいわ
某フリーソフトなら仕様でカスタマイズ可能なんだけどな
0344名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 07:25:02.89
IT系以外では、それなりに大きな会社であっても絶対マウス使うマンが概ね主流だよな
クイックアクセスツールバーにクイック印刷以外のデフォルトボタンなど邪魔でしょうがない(自宅PCでは外して他のを登録してます)けど、郷に入れば何とやらか
まあ、自分だけショートカット使って出来る限り差を付けるのがベターだな
0345名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 09:11:46.36
事務作業の能率をチェックして個人の評価を決めてる会社なんてあるの?
処理した伝票の枚数とかいちいち調べてたら逆に怖いわ
0348名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 09:36:20.19
>>347
レアケース

そんなルールの厳しい会社に務めてるやつは5chなんか見ない
ローカルルールを知らない他人の回答はまったく役に立たないから同僚に聞くしかない
0349名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 10:39:18.30
むしろ重くなるから関数使うなという所もあるしな
そういう時は白紙ブックにマクロを入れて裏から操作すればいいけど
マクロで操作出来るのは何もマクロ入りのブックだけではないし
0352名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 14:31:53.29
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010,2013
【3 VBAが使えるか    .】 中級
【4 VBAでの回答の可否】 可

シートに表があります。
名前、ふりがな、注文品、個数という表です。
何百行もある表です。

あるフォームを開いた時そこのコンボボックスの選択肢に
シートのふりがなを用いたいのですが、表には同じ人が何回も登場するし
できればあいうえお順で.cmbboxにAddItemしたいです。
重複を避けあいうえお順にするのに何かいい方法ないでしょうか?
0355名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 15:43:07.27
>>352
どこか空いてるセルにふりがなの列をコピーして、重複の削除(RemoveDuplicate)と並び替え(sort)をすれば少ない手間で目的のデータが得られる
0356名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 15:45:04.32
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(必要なら覚えます)

(機能の例としてのファイルなので、見なくても大丈夫です)
http://www.beec.or.jp/format/for_report.html
一般財団法人 日本建築設備・昇降機センターのサイトに繋がります。
このページの
「東京都 建築設備定期検査報告書+報告概要書 Excel2010【リンク版】2019.4.26」
のファイルの中にあるマクロ(?)のように、

「エクセルファイル1」の「ワークシート名」の「セル(仮にA1)」の内容を、
「エクセルファイル2」の「ワークシート名」の「セル(仮にA1)」に移す、

という作業を各入力セル(500セルくらいあります)に行う
マクロ(?)ってどのように作ればよいのでしょうか?

このサイトの書式に限らず、
「公式が配ってる書式が1年に1度くらいのペースで微妙に変えられるので
旧書式の入力内容を新書式に手作業でカタカタ頑張って打ち込む」みたいなことが多いので
マクロ(?)やプログラムで自動処理みたいなのができるなら頑張って作りたいです。
0357名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 16:01:51.70
>>356
VBAならセルのコピーは1行で書けるけど、書式が変わってしまったら自動で対応するのはかなり難しいと思う

(例)
Workbooks("エクセルファイル2").Sheets("ワークシート名").Range("A1") = Workbooks("エクセルファイル1").Sheets("ワークシート名").Range("A1")
0358名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 16:22:03.81
>>357
書式が変わるのは頻繁ではない(多くて半年に1度程度)なので、
軽微な書式の変更は手作業のメンテナンスで対応していこうかと思っています。
(「A1をA1にコピー」を、「A1をA2にコピー」にする程度の書き換えを
十数ヶ所、程度の作業で大丈夫だと思いますので。)

Workbooks( )
Sheets()
Range()
=
を教えていただいたおかげで、方向性がわかって
検索もできるようになったので、ここからはコツコツと覚えていこうと思います。
ありがとうございました。
0359名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 19:16:16.27
>>354
君が知らないだけで、世の中こういう単純作業って山ほどある
納期が厳しいものは作業員の能力を把握してないと即納期遅延になるので、ノルマとか歩合制では不安定過ぎる
0360名無しさん@そうだ選挙にいこう
垢版 |
2019/08/22(木) 21:16:23.37
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

1つのファイルでシート1にデータソース、シート2、3にピボットを組んでます
ピボットのデータ範囲は同一のテーブルを使用しているのですが、片方は全て集計されているのに、もう片方はデータ1行分が集計されません

単純なピボットなので、組み方は間違っていないと思います
見当がつく方いらっしゃいますか
0363360
垢版 |
2019/08/22(木) 22:00:19.97
>>361
明日全てチェックするようにします
>>362
総合計が不足していたので気付きました
セキュリティが厳しい会社なので、ファイルの持ち出しは出来ないですね
0365名無しさん@そうだ選挙にいこう
垢版 |
2019/08/23(金) 00:12:16.95
>>360みたいな悩みって、見る人が見たら数秒で原因がわかり、数分で修正できてしまうものだと思う。
こういうのを遠隔操作でチャッチャと解決してくれるサービス、誰かはじめてください。
0372名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 14:06:02.27
無職の期間に職安の訓練校通ってExcel Access VBAのセットコース取ったけどVBAは触りだけって感じで業務に役に立つレベルには程遠かった
0373名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 14:42:15.24
>>371
いっぱいあるよ。パソコン教室はマジで吟味して決めた方がいいよ。周りの人たちがWordとかPhotoshopとかやってると質問とかしづらい。要は少人数の教室を探して行くのが1番いいよ。
0374名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 15:35:51.28
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


カーソルの位置を自動で適切な位置にしたいです
横列1の縦列のCまで入力したら自動で
横列2の縦列Aにカーソル移動
横列2の縦列Cまで入力したら自動で
横列3の縦列1にカーソル移動
って感じにしたいです
0376名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 18:31:55.71
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

B列からZ列くらいまで、10行の表があります。

B3の値が「出席」なら、B4のセルの背景色が青になるというように、
BからZ列までぜんぶ、「○3の値が出席なら○4の背景色を青」と
設定したいのですが、どのようにすればいいのでしょうか?

条件付き書式って、自分自身のセルのことしか無理っぽいです。
ひとつ上のセルを条件にするってことと、できればBからZまで一括設定がしたいのですが
何か方法あるでしょうか?
0377名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:03:05.94
>>374
毎回範囲を選択した状態にするのも面倒なら
入力したい範囲のセルの書式設定の保護タブで、ロックのチェックを外し
校閲タブのシートの保護で、ロックされたセル範囲の選択のチェックを外すと
ロックされていないセル範囲=入力したい範囲しかカーソルが動くことはなくなる。
0378名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:20:09.13
>>376
1 B2:Z11のセル範囲を選択する
2 リボン→ホーム→条件付き書式→新しいルール→数式を使用して〜
3 数式を入れる枠に =B1="出席" を入力
4 [書式]ボタンをクリック
5 塗りつぶしのタブをクリック→塗りつぶす色を指定→[OK]をクリック
6 [OK]をクリック
B2:Z11を選択している状態で、数式にB1と指定したところがミソです。
0379名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:21:54.75
>>376
B4セルの条件付き書式の条件の数式に
=B3=”出席”
でええんとちゃう?
なんでそのセルの値しか参照できないと思い込むのか分からん
0380名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:51:33.75
【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店舗夜間"も除外対象に追加したいのですが、うまくいかないのでご教示いただければ幸いです。
0381名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 21:00:07.09
>>380
なんでフィルタオプション使わないの?
0382名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 22:01:10.22
>>381
ご教示ありがとうございます。
確かにフィルターオプションでできました。
ただ、元の式から条件が追加になるだけだったので、式の軽微な修正でできるかと思ってました。
0383名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 23:25:04.36
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

初心者ですが、ここにながれつきました・・・
エクセルの式で、どのように作ればよいか分からず
悩んでいます。

セルA1が「1」ならB2を反映、A1が「2」ならC5を反映
としたいのですが、この場合どのような式になるのでしょうか。

ifsは2013では無理とやっと分かり、vlookupではとなりのセルしか
反映できない?みたいで、行き詰まっています・・・

すみませんが、どなたかご教授願います!
0386名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 00:21:52.02
>>383
=CHOOSE(A1,B1,C5)
2013ならこれ
0388名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 08:29:45.03
ご回答ありがとうございます!!

今晩、パソコンで試してみます!
色々とありがとうございます。
0389名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 14:25:41.74
【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だけになります。
参照するセルが複数の場合、どのように指定すれば良いのでしょうか?

また、マクロではあまり、セルに入力されている値を参照するものでも
ないのでしょうか?分かりにくい説明ですみません、よろしくお願いします。
0390名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 15:21:40.18
>>389
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
0391名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 15:21:47.34
findか何かを使えばいいんだろうけど構文を調べるのが面倒だから
ForEachで作ってしまう僕が通るだけで後はまかせますよ
0397名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 16:32:15.80
はじめのrangeオブジェクト
0398名無しさん@そうだ選挙にいこう
垢版 |
2019/08/26(月) 12:52:25.65
>>396
最初に見つけたところで検索終了
ただどこまで検索したのかの位置は内部的に記録してあって
それ以降のを検索するには
FindNextメソッド使って終わりまでループさせる
正直面倒な仕様だと思われ
0399名無しさん@そうだ選挙にいこう
垢版 |
2019/08/26(月) 14:50:29.32
vbaでIEを動かす際、テキストボックスへのfocusが、成功するときと成功しない(で次の処理に移行しエラーが出る)ときがあります
安定させるのに何か方法はないでしょうか?
0401名無しさん@そうだ選挙にいこう
垢版 |
2019/08/26(月) 19:23:48.02
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

10シートのうち,「作業用」,「転記用」という名前が入っているシートがいくつかあります。
通常は非表示にしてあり,現在は,担当者が再表示する場合は「校閲」→「ブックの保護」→「パスワード入力」と行っています。

これを,例えば「シートの再表示」というマクロを実行すると,
1.「校閲」→「ブックの保護」→「パスワード入力」 まで自動で進む。
2.パスワードを入力する。
3.「作業用」,「転記用」という名前が入っているシートのみが再表示される。

また,逆に,
例えば「シートの非表示」というマクロを実行すると,
1.「校閲」→「ブックの保護」→「パスワード入力」 まで自動で進む。
2.パスワードを入力する。
3.「作業用」,「転記用」という名前が入っているシートのみが非表示される。

といいう動作にしたいです。
どのように記述したらよいか教えてください。
0404名無しさん@そうだ選挙にいこう
垢版 |
2019/08/26(月) 19:35:45.82
>>401です。追記です。
パスワードなしの場合は,以下のように記述しています。


Sub 転記用シート一括非表示()
Dim s As Worksheet
For Each s In Worksheets
If InStr(s.Name, "転記用") > 0 Then
s.Visible = False
End If
Next s
End Sub


Sub 転記用シート一括再表示()
Dim s As Worksheet
For Each s In Worksheets
If InStr(s.Name, "転記用") > 0 Then
s.Visible = True
End If
Next s
End Sub
0405389
垢版 |
2019/08/26(月) 22:49:48.87
アドバイスありがとうございました。
とても勉強させて頂きました。
私もいつかは回答者さん側になれるよう精進したいと思います。
0406名無しさん@そうだ選挙にいこう
垢版 |
2019/08/26(月) 23:01:40.34
A1をリスト入力に設定し、リスト候補をセル範囲指定に
している場合で、セル範囲(縦一列に入力)の下部セル
にリスト候補を追加入力しただけで、リスト候補として
追加される方法はありますか?
0409名無しさん@そうだ選挙にいこう
垢版 |
2019/08/26(月) 23:24:21.52
入力セルがA列、リスト候補の列が別のとこに設けている
ようにしています。
新しいリスト候補ができると、都度入力規則を設定し直
しているのを省略したいです。
0411名無しさん@そうだ選挙にいこう
垢版 |
2019/08/26(月) 23:39:29.30
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelは計算量が多いと途中で計算をやめると聞きましたが、本当ですか??
0415名無しさん@そうだ選挙にいこう
垢版 |
2019/08/27(火) 07:39:02.23
vba で複数シートを一括印刷する際、A1セルに「××」という文字列があるシートは除外して印刷するような設定ないでしょうか?
0418名無しさん@そうだ選挙にいこう
垢版 |
2019/08/27(火) 18:31:12.72
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

>>383  です。色々と試してうまくいきました!ありがとうございました!

2つ目の試練が出てきました・・・・

A1が1の時、  A3〜M3の範囲で「1であるセル」の下を選ぶ (例えばC3が1なら、C4)

という指定は可能なんでしょうか。
0419名無しさん@そうだ選挙にいこう
垢版 |
2019/08/27(火) 18:35:09.06
418の続きです。

カレンダーの日付で、●日の時のメニューを、別シート(配送表)に反映させたいんです。
カレンダー様式は曜日が固定されていて、月によって●日という位置が変わるんです・・・

月 火 水 木・・・
1 2  3  4      もあれば

月 火 水 木・・・
31 1 2  3      などもあり、

日付と一致するセルの下のメニューを引っ張りたいんですが、式で可能なんでしょうか。

何度もすみませんが、どなたかご教授願います。
0420名無しさん@そうだ選挙にいこう
垢版 |
2019/08/27(火) 18:58:25.22
↓だと半分ぐらいが削除されるのですが、なぜか削除されない行もあります。
セルにはスペースも何も入っていないで。
原因と解決方法を教えてください。



Sub Macro2()

'シート名「***」のC列に空欄のセルがあれば、その行を行ごと削除して詰める

Sheets("***").Select

For r = Cells(Rows.Count, "C").End(xlUp).Row To 2 Step -1
If Cells(r, "C").Value = "" Then
Rows(r & ":" & r).Delete
End If
Next r

End Sub
0421名無しさん@そうだ選挙にいこう
垢版 |
2019/08/27(火) 19:51:26.12
>>420

For r = Cells(Rows.Count, "C").End(xlUp).Row To 2 Step -1
If Cells(r, "C").Value = "" Then
debug.print r&"行目の中身:"&Cells(r, "C").Value
Rows(r & ":" & r).Delete
End If
Next r

って感じでコンソールに出力すると良いよ

他にもF8のステップインって機能がある
一行一行見ていけば、変な行がわかる
0422384
垢版 |
2019/08/27(火) 20:40:32.82
>>383,418
これでどうでしょう。
=IF(A1=1,OFFSET(A3,1,MATCH(1,A3:M3,0)-1),"")

=IF(A1=1,  ,"") の部分は説明不要ですね。
OFFSET(A3,1,MATCH(1,A3:M3,0)-1)の解説
OFFSET(A3,1,□)   で、A3セルを基準に1行下、□列右のセルを指定したことになります。
□はどうやってもとめるか・・MATCH関数の出番です。
MATCH(1,A3:M3,0) で、A3:M3セル範囲(1行×13列)の中から値が1のセルが何番目に
あるかを求める関数です。例えば、D3セルが1だったらMATCH関数の値は4になります。
このままではA3セルを基準に1行下4列右のセル=E1セルを指定してしまうことになるので
MATCH( )-1 としています。
ただし、A3:M3に一致する値がない場合はエラー #N/A となります。

なお、>>419を見てみた限り、この方法がいいのかどうかはわかりません。表の全体がもう少し
詳しくわかればいいのですが・・・。
かといって、実際のファイルをアップすることはしないように。
週間カレンダー形式の表は私もいくつか作ったことがあります。
0423名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 08:20:13.79
>>419
俺だったら、日付とその日のメニューを
左右2列に並べたシートを作り
それを元にカレンダー作るけどね
休業日のシートも作って
それもカレンダーに反映させればいいし
万年カレンダーでググればヒントになるの見つかるよ
0424名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 09:09:15.81
>422  ありがとうございます!自分の知らない関数でした!
確かに、これだといけますね!

範囲を複数にまたがる時ってどうしたらいいんでしょうか?
カレンダーなので、行が変わるんです。「A3:M3」だけでなく、
「A10:M10」も みたいなイメージです。

>423
横に書くデータ入力シートを作って、それを反映させるって意味ですね?
入力する素人おばちゃんが、縦と横、目を回さずに間違いなく入力できたら
いいんですが・・・一度話してみます!

色々とありがとうございます。
0425名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 12:15:10.15
>>424
横じゃなくて縦並び
手帳と同じ
日付,メニュー
2019/8/28,オムライス
2019/8/29,ハンバーグ定食
って感じ
0426名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 12:50:53.91
カレンダー作る時
日付を“1”で入れるか“2019/9/1”で入れて
書式にd入れるのは見かけ同じで意味が違う
後者の方が応用させやすい
0427名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 13:19:50.23
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 不可

あるシートのA5に、=IF(A50>0,"支払済","未") という関数が入っており、それがZ列まであります。
それぞれ、50行目に金額が入っていれば 支払済、なければ 未 と表示されるようになっています。

このA5からZ5に、「値が 支払済 なら背景色変更」という条件付き書式を設定しようとしているのですが、
うまくいきません。
なぜか「値が 未 なら背景色変更」というのはできます。

「支払済」という文字が間違っているとは思えません。「済」という文字のコードに問題が?とか思って
関数も「すみ」に変えてもダメです。「未」だけ判定できる条件付き書式なんてありえるのかと
わけがわかりません。

何かアドバイスください。お願いします。
0429名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 13:27:08.82
>>427
支払済を試しに半角英数字に変えてみては?
0431名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 16:12:41.07
>>427
条件式に間違いは無いのでは?
ただ、それに対応する書式がきちんとしていないとか?

>>428
普通はそうだよね。
強いて言えば、A50に"金額"という名前を付ける方が後で修正のときに迷わない。
0432名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 16:20:46.01
細かいこというけど、A50が空白かどうかの判定は
A50>0,"支払済",“未”
じゃなくて
ISBLANK(A50),"未","支払済"
0433名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 16:28:54.80
>>427
結局、支払済と未でそれぞれの背景を何色にしたいねん?
それを書かないとなんともなあ。
0434384,422
垢版 |
2019/08/28(水) 17:47:23.57
>>424   簡単に作ってみました。
>>423さんが書いてるような、入力のためのシートと週間カレンダー形式のシートで構成しています。
両方のシートを画面イメージでアップしました。
https://i.imgur.com/kVRc5G6.png
曜日固定のカレンダーに日付を設定するのは第1週の最後の曜日の日付を求める計算式が要です。
B1セルとC1セルに入れた年と月とI4セルの計算式で求めています。
I4セルの計算式の説明は割愛します。C4:I4、C7:I7、・・・のセルは計算式で日付を出しています。
セルの書式で日付のうちの日部分だけ表示するようにしています。I4セルだけ年月日を出してます。

入力シートから日付をキーとして引用する計算式は、図の下の方のF5のセルの
=IFERROR(VLOOKUP(F4,入力!$A$2:$C$50,2,FALSE)&"","")  です。
$A$2:$C$50という、49行×3列のセル範囲の先頭列が日付の検索範囲で、2 は該当したら
2列目(B列)のセルを返すようにしています。
項目2の欄であるF6セルの計算式は
=IFERROR(VLOOKUP(F4,入力!$A$2:$C$50,3,FALSE)&"","")  です。違いはわかりますか?
0437名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 22:21:47.09
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】 可

数式や関数がたくさん入っていて非表示になっているシート1があるとします。
VBAで、このシートのコピー(各セルの値はすべて値を貼り付け的な処理をして関数や数式は残さない)
を別ファイルとして保存することは可能でしょうか?

可能なのかどうか、また、できればそのコード(長くなるならヒントだけでも)を教えてください。
0439名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 23:37:15.59
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 可
【4 VBAでの回答の可否】 可

特に質問はないので、一応テンプレだけ。
0441名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 00:38:59.27
>>437
ようは、マクロの記録でも出来る
そのマクロコードでオブジェクトやプロパティの意味を知りたければドラッグしてF1押せばマイクロソフトのサイトで解説してくれる
0442名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 08:57:40.67
>434

ありがとうございます!

まだパッと見てもわからないので(笑)
少し夜考えてから質問させてください!

写真まで丁寧にありがとうございます(^◇^)
0443名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 15:59:20.40
>434

何分か見比べてみました。何となくわかります!(笑)
画像つきで丁寧に教えていただきありがとうございます(^^)

VLOOKUP関数なるものは、検索してわかりました。(IFERRORも)
これを使うには、入力シートが、横に項目1・2と続く場合に
拾うというものですよね。縦のものを拾う関数は存在しないんでしょうか。

お弁当屋さんなんですが、結構デザートまで入れると6種目あって、
メニューの品名も長くて。縦に項目1・項目2として、それを反映する関数だと
一番入力する人間もわかりやすいのかなって思ってしまい・・・

でも、これが一番よいのかも!?
0444名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 17:07:27.43
>>443
一応、HLOOKUPというものもある
今年後半からXLOOKUPというのも出るそうだ

VLOOKUPよりindex+matchの方が使い勝手良いから使ってきたけどXLOOKUPの方が楽かもしれない
0445434
垢版 |
2019/08/29(木) 19:48:56.33
>>443
まさか”メニュー”という言葉が出てくるとは!
自分は現在、福祉NPOに関わってて、ボランティアでパソコン関係の支援をしてます。
NPOの調理部門のメニュー表作成で以前作ったもののイメージをアップしたので参考にしてください。
https://i.imgur.com/rtRqHo9.png
左側のシートは”DB”シートです。同じ日付で4行あるのは、朝・昼・夕・おやつ の4種類のためです。
VLOOKUPの対象となるのはC列〜I列です。
出力側シートのC11セルの計算式が見えてますが、おもしろいことに「昼食」の欄(C9:C13)の計算式は
全て同一です。計算式中の ROW()-7 の部分で自動的に引用する列をずらしているからです。
C11セルなので ROW()-7 の結果は 11-7=4 → VLOOKUPの対象となるのはC列〜I列なので
4列目にあたるF列の値が引用されます。
0451名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 20:57:04.85
vlookup 初級者
indexとmatchで 初級者+
vlookupmatch 中級者

実務で間違いが起こらないように数式を組み立てる事が出来る、これが一番大事
技術が幾ら凄くても間違ってたら駄目なんだ
0456名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 22:52:34.65
I列にゼロがあれば、そのセルをクリアにするようにしたいのですが


For Each c In Range("I:I")
If c <= 0 Then
c.Clear
End If
Next c

これだと結構時間がかかります。
早くするコードをおしえてください
0458名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 23:01:22.17
>>456
オートフィルタかけたらいかんの?
range("a:i").autofilter field:=9,criteria1:="<=0"
range("i:i").clear
range("a:i").autofilter
0460名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 23:03:25.06
>>456
Sub Macro1()
列 = 9
最終行 = Cells(Rows.Count, 列).End(xlUp).Row
For i = 1 To 最終行
If Cells(i, 列) = 0 Then
Cells(i, 列).Clear
End If
Next
End Sub

>>457-459
お、お前等
シートの最終行まで見てる事が遅い原因だぞ
0462名無しさん@そうだ選挙にいこう
垢版 |
2019/08/29(木) 23:36:30.59
Excelの機能でできることはExcelの機能で実現しないと遅くなるよな
0465名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 01:14:28.40
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

あいうえおおおかき(abcd)くけこさ(efef)しすせそた(gggg)ちつてと

上のようなパターンの文字列がありまして、いくつか(多くて5つくらい)のカッコで囲まれた文字列を除く計算式が知りたいです

結果こうなりたい
あいうえおおおかきくけこさしすせそたちつてと

置換Ctrl-Hじゃなくて計算式でよろしくおねがいします。
0469名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 12:56:01.44
>>465
ユーザー定義関数使っていいなら出来るが
VBA否だからなあ
0470名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 16:37:36.69
特選!黒板チョークアートがギッシリ満載!無料イラスト商用OK
https://56emon-cafe.com/kokuban-art-osusume-ac
カフェイメージ特選13作!無料イラスト商用OK.クレジット表記不要!
https://56emon-cafe.com/cafe-sozai-osusume-ac
【無料ダウンロード】美しい!マンダラ模様20選! 商用利用も可能
https://www.seleqt.net/design/free-mandala-vectors/
イラストレーター ぶらおさんの無料イラスト
https://www.pinterest.jp/pin/589479038700927178/
https://www.ac-illust.com/main/profile.php?id=NbsX7TdR
フリーオシャレ素材 VintageVillageヴィンヴィレ
http://vinvill.com/
無料&商用OK!子供向け&アートなアルファベット・数字素材
https://kmy.website/kids-art-alphabet/
ロゴ作成ツール11選 無料でおしゃれなデザインを簡単に作れる!【商用OKも】
https://mag.app-liv.jp/archive/119964/
過去最大級!ナチュラル手描きイラスト素材集75万円分が
99%オフの破格セール中(水彩・パステル・線画)
http://photoshopvip.net/117245
文字をかっこよくデザインする!すごいPhotoshopテキストエフェクト厳選66個まとめ【2019年版】
http://photoshopvip.net/107585
0471名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 16:44:13.85
VBA実行ファイルと同じフォルダ内に複数のCSVファイルがあり、そのCSVの各ファイルのA〜Gの2行目以降を
コピーしてVBAを実行するBookの“日報”と言うシートに張付けて、行を累積していくコードを教えてください。

それぞれのCSVファイルの最終行はA行の最後です。
0472名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 17:47:17.95
>>471
何かの試験問題か?
>A行って何?
A~G言うから、これ列指定かと思ったら行と来たもんだ?
そもそも、どういう構造のCSVやねん?
0473名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 19:10:25.27
複数のシート間で対応するセル同士を相互リンクするのって関数じゃ無理ですか?
どちらで更新しても全てに反映されるような
0474471
垢版 |
2019/08/30(金) 19:39:32.82
>>472

すみません。A列でした

それぞれのCSVファイルはA列〜G列に文字が記入してあります。
0477名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 21:03:23.47
>>471
CSVファイルの指定はどうやって行うの?
ダイヤログ?.csv全部?あと順番は?
フォルダへのCSVファイルの移動(またはコピー)は手動?重複チェックは必要?
0479名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 21:06:38.19
>>471
あと、素朴な疑問だけど、日報もCSVじゃダメなの?日報がCSVでよければコードは超簡単になるんだけど
0480名無しさん@そうだ選挙にいこう
垢版 |
2019/08/30(金) 23:11:57.67
>>473
相互参照の必要性が全く無い
それが出来ないと不便なことがあるのか?
0481名無しさん@そうだ選挙にいこう
垢版 |
2019/08/31(土) 00:05:38.52
>>465です
普通の関数だけではできないんですね
ユーザー定義関数ならできそうですか よろしくお願いします
0483471
垢版 |
2019/08/31(土) 00:57:04.22
>>477

・フォルダ内のCSV全てです
・CSVファイルは手動でフォルダに入れます
・重複チェックは必要ありません
・順番は不順です
0484名無しさん@そうだ選挙にいこう
垢版 |
2019/08/31(土) 03:40:16.87
>>483
処理速度は考慮してない
--------------------
Const PATH = "フォルダパス\"
Dim cnt As Long
Dim fname As String
Dim buf As string

cnt = Cells(Rows.Count, 1).End(xlUp).Row
fname = Dir(PATH & "*.csv")
Do While fname <> ""
 Open PATH & fname For Input As #1
 Line Input #1, buf '※
 Do Until EOF(1)
  Line Input #1, buf
  If Split(buf, ",")(1) = "" Then Exit Do
  cnt = cnt + 1
  Range(Cells(cnt, "A"),Cells(cnt, "G")).Value = Split(buf, ",")
 Loop
 Close #1
 fname = Dir()
Loop
End Sub
--------------------
※は1行目が必ずある前提。無いなら別の処理がいる
0485名無しさん@そうだ選挙にいこう
垢版 |
2019/08/31(土) 12:32:40.90
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


A B
1 3
2 1
3 5
4 2
5 4

列Aと列Bを比べて3と5は2つ順位が上がったとして
列Aより列Bの数字が2つ以上順位が上がった事を見つける数式
また該当数字のセル色を変える方法はありますか?
よろしくお願いします
0487名無しさん@そうだ選挙にいこう
垢版 |
2019/08/31(土) 13:39:11.18
>>485
同じ行同士比較するんであれば、条件付き書式(数式利用)で、作業列使わずにできますよ。
1行目からデータがあるのであれば、A1:A5(実際にはデータがあるところまで)のセル範囲を選択しておいて
ア リボン → ホーム → 条件付き書式 → 新しいルール → 数式を使用して、書式設定するセルを決定
イ 数式を入れる欄に =A1<=B1-2 と入力
ウ [書式]ボタンをクリック
エ 塗りつぶしのタブをクリック → 塗りつぶす色を指定 → [OK]をクリック
オ [OK]をクリック

A列の値 <= B列の値から2を引いた数字 が成り立てば「2以上順位が上がった」としています。
A列の値にゼロがありうる場合は、 =AND(A1>0,A1<=B1-2) でいいかも(試してません)
0489名無しさん@そうだ選挙にいこう
垢版 |
2019/09/01(日) 02:15:05.40
このソフトを快適に動かせるPCのスペックってどこを重視すればいいんでしょうか?
IEとかも動作させたりするせいか
結構重いのです
0490名無しさん@そうだ選挙にいこう
垢版 |
2019/09/01(日) 06:31:47.40
>>489
メモリー

CPUは基本的に食わない。VBA使ってて消費量が多ければコードを見直す方がいい
0493名無しさん@そうだ選挙にいこう
垢版 |
2019/09/02(月) 00:44:16.58
https://moripro.net/vbaie-gethtml/

こちら検索して出てきたもので、これをそのまま使って起動済み画面のHTMLを取得しています
しかし、目的の画面のHTMLを読み込んだ後、処理@〜B(リンクをクリックする、テキストボックスに記入するなど)を入れると、
Aを飛ばして@Bと遷移するときと@~Bとうまく遷移することがあります
この違いはなんでしょうか?回避方法ありませんか?
0496名無しさん@そうだ選挙にいこう
垢版 |
2019/09/02(月) 18:49:41.47
380で質問した者です。

質問に対し、フィルタオプションを使用してみては?
とご回答くださり、その場は対応できたのですが、質問に大事な事を書き忘れました。
売上表は複数シートからの抽出された、昇順並び替えをしている可変データになります。
そのため、フィルタオプションだと、データが変わるとフィルタオプションでは
設定した時の抽出状態なので、やはり式の修正が良いのではと思っています。
再度質問して申し訳ありませんが、式の修正で良い方法があったらご教示くださるとありがたいです。
0500名無しさん@そうだ選挙にいこう
垢版 |
2019/09/02(月) 21:30:10.72
>>497
>>498
496です。498さんの式でできました。ありがとうございました。
0501名無しさん@そうだ選挙にいこう
垢版 |
2019/09/02(月) 22:22:02.33
>>499
ユーザフォーム一つ作ってパスワード入力用のテキストボックスを置く
保護ボタンとか解除ボタンとか付けて、それ押したらそのテキストでブック保護切り替え、シート表示切替やるだけ
シート上かメニューに呼び出し用ボタンか何か作ってそのマクロを呼び出す
但し、個人で使う用なら関係ないが、他人も使うなら運用でExcelのメニューにある「ブックの保護」を使わないようにしてもらう必要がある
XMLでリボンメニューも弄れるが、そこまでするほどのもんでもない気がするので興味あったらやればいいんじゃないかな
0503名無しさん@そうだ選挙にいこう
垢版 |
2019/09/03(火) 13:34:41.33
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2012
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可


関数を教えてください。

セルのT2に「2019/8/19」のような日付の値が入っています。

そこで、毎月20日を締め日として

2019/8/19 なら 2019_8 

2019/8/21 なら 2019_9 と返す関数として

=(YEAR(T2)-IF(MONTH(T2)*100+DAY(T2)<=220,1,0))&"_"&(IF(DAY(T2)>20,MOD(MONTH(T2),12)+1,MONTH(T2)))

を使っています。この関数に、「U2のセルが空欄ではなかった場合、1ヵ月繰り上げる」という条件を追加した式を教えてください。
0511名無しさん@そうだ選挙にいこう
垢版 |
2019/09/03(火) 14:56:22.22
もっと短くできそうなんだけど、俺にはこれが限界だった
=TEXT(DATE(YEAR(T2)-(MONTH(T2)+(DAY(T2)>20)-(U2<>"")<3),MONTH(T2)+(DAY(T2)>20)-(U2<>""),1),"yyyy""_""m")
0521名無しさん@そうだ選挙にいこう
垢版 |
2019/09/03(火) 21:05:34.39
一応できたけど、式が汚すぎる
=TEXT(DATE(YEAR(DATE(YEAR(T2),MONTH(T2)+(DAY(T2)>20)-(U2<>""),1))-(MONTH(DATE(YEAR(T2),MONTH(T2)+(DAY(T2)>20)-(U2<>""),1))<=2),
MONTH(DATE(YEAR(T2),MONTH(T2)+(DAY(T2)>20)-(U2<>""),1)),1),"yyyy""_""mm")
0525名無しさん@そうだ選挙にいこう
垢版 |
2019/09/03(火) 21:57:09.35
>>522
どれも間違ってるからだよ
質問の文章には書かれてないけど、例示された数式を見ると年度の変わり目が3月になってて、誰の回答もそれが反映されてない
0530名無しさん@そうだ選挙にいこう
垢版 |
2019/09/03(火) 22:49:16.17
>>503
繰り下げ?を直して年度にしたわ、汚いわ
U2が空白でない場合、2019/8/19なら2019_7、2019/8/21なら2019_8と表示されるぞ

=YEAR(EDATE(T2,IF(DAY(T2)>20,1,0)+IF(U2<>"",-1,0)-2))&"_"&MONTH(EDATE(T2,IF(DAY(T2)>20,1,0)+IF(U2<>"",-1,0)))
0541503
垢版 |
2019/09/04(水) 09:29:27.70
>>504
そうです。締め日は当月です

>>510
もし めんどくさいのであれば、年度の締め日を無視してもいいです

もしU2に値が入っていたら
2019/8/21 → 2019_10
2019/10/25 → 2019_12
2919/7/19 → 2019_8
2020/9/10 → 2019_10
2020/2/16 → 2020_3(年度ではなかった場合)

もしU2が空欄の場合
2019/8/21 → 2019_9
2019/10/25 → 2019_11
2919/7/19 → 2019_7
2020/9/10 → 2019_9
2020/2/16 → 2020_2

>>523
繰り上げは次の月(翌月)でお願いします。

>>525
"年度"ではなく"年"どちらでもよいです

>>534
2回目の書き込みです。どれが正解かわからず、いまさらのレスになってしまいました

>>539
U2に値が入っていたら、"翌月"でお願いします。
0542名無しさん@そうだ選挙にいこう
垢版 |
2019/09/04(水) 10:39:36.35
アンチウイルスソフトに下記のメッセージが出てきたのですが
どういうことか分かる人いますか?EXCEL2019です。

無効な証明書によるSSL接続を検知しました
*****.fp.measure.office.com
証明書の名前が無効です。
名前が許可リストに登録されていないか、明示的に除外されています。;Microsoft Excel
0544503
垢版 |
2019/09/04(水) 14:13:49.10
>>543
ありがとうございます。
0545名無しさん@そうだ選挙にいこう
垢版 |
2019/09/04(水) 18:18:10.95
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可

シート上に設置したテキストボックスが、フォーカスがないときは中の字がやや
小さくなってにじんでおり、フォーカスを移して中の文字を編集状態にすると、
ほんの少し字が大きくなってきれいな表示になります。

これ、何かのプロパティをいじることで解消できる気がするのですが
何か方法ないでしょうか?
0548名無しさん@そうだ選挙にいこう
垢版 |
2019/09/04(水) 22:39:36.41
>>545
文字より枠を大きくすることで解消する場合があるけど、
他のPCで見るとダメだったり、外部データの取り込み使うと壊れたりで、
完治するかはわからない。
0549名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 00:04:05.67
ActiveXをシートに張り付けるのは表示も動作もクソすぎてお勧めできない
前まではマクロが死ぬレベルだったけど、標準フォントが変わって表示も怪しくなってきた
フォームでいけるならフォームを使った方がいい
0550名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 00:08:00.40
つかWin10環境でOffice2010使ってるのがそもそもクソ
0551名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 00:34:31.65
なんだかんだ言って、2010は多数派でしょ。
たまたま購入したPCにバンドルされてたってのを別にして、
ちゃんと金を出してOfficeそのものを購入し毎日Office使ってるというレベルのユーザーだけだと、
2013が1位で、次が2010じゃないかという印象。
0553名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 02:52:43.90
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 既存コードを微修正する程度(行列範囲等)
【4 VBAでの回答の可否】 極力不可

https://imgur.com/o9jyjCw

上記左の表の様なデータを元に、右の表の様な一覧表を作りたい。
県・種類の値は元データにより変わる為、各項目は自動抽出したい。
県+種類の値が重複したデータがある場合は、どちらか一方の表示でも可。
ピボットテーブルを試してみたのですが、特定列の値そのものを
表示させる事が出来なくて困っています。

お知恵をお借りできませんでしょうか。
0555名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 11:00:42.07
>>553
Access2010のピボットで出来るがAccess2013ではその機能がなくなった
そのため俺はいまだにAccess2010を使い続けている
0556名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 18:12:16.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

タイトル行内に画像データを張り付けて、その画像データを
1ページ目にだけ印刷させたいのですが、何か方法ありそうでしょうか。

例:横の印刷セル範囲がHまでとして、タイトル行に$1:$6を設定。
   H4ぐらいに画像あり。
0557名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 18:22:51.43
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007 or Excel2010
【3 VBAが使えるか    .】 使えない
【4 VBAでの回答の可否】 不可
Excel2007かExcel2010が欲しいです
中古でいいのですがどうやって手に入れたらいいでしょうか
ヤフオクなどで3000円以下で売っていますが、信頼できないため、出来れば店舗のあるお店で購入したいです
よろしくお願いします。
0558名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 18:40:41.13
  B列
1行目=北海道
2行目=青森
3行目=秋田
4行目=秋田
5行目=岩手
6行目=宮城
7行目=山形
8行目=山形
9行目=山形
10行目=新潟
11行目=福島
12行目=福島

この時にA列に、隣のB列の値が「上から何種類目」にあたる値なのかを返す式を教えてください

  A列  /  B列
1行目=1 / 1行目=北海道
2行目=2 / 2行目=青森
3行目=3 / 3行目=秋田
4行目=3 / 4行目=秋田
5行目=4 / 5行目=岩手
6行目=5 / 6行目=宮城
7行目=6 / 7行目=山形
8行目=6 / 8行目=山形
9行目=6 / 9行目=山形
10行目=7 / 10行目=新潟
11行目=8 / 11行目=福島
12行目=8 / 12行目=福島
0559名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 19:22:21.00
>>558
ん?
都道府県コードを振りたいの?

47しかなから、
総務省あたりのコード順で、重複なしリスト表を別に用意して
VLOOKUPあたりで参照するのじゃだめ?
0560558
垢版 |
2019/09/05(木) 19:29:07.99
>>559

すみません都道府県はあくまで例です。
0561名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 19:46:00.65
>>558
作業列を使っていいなら割と簡単です。C列を作業列に割り当てる場合・・・
C1セル なし
C2セル =(B2<>B1)*1 を入力して、下へフィルコピー
A1セル 1 を入力
A2セル =A1+C2 を入力して、下へフィルコピー
ただし、これが成立するためには、B列のデータは並べ替えが済んでいること。
離れたところに同一データが存在する場合はうまくいきません。C列の計算式は直上セルの値との比較だけなので。
0562名無しさん@そうだ選挙にいこう
垢版 |
2019/09/05(木) 20:08:13.34
>>558
元データをテーブルにしておいて(参照範囲が自動的に拡張される)
その範囲を参照するクエリーで、
重複削除とインデックス列追加で番号振って、
それを参照表にしたら?

元データに追加・削除があっても、
クエリーの更新ボタン一つで
あとはA列に入れたVLOOKUPかINDEX(MATCH())参照で
番号が振り直されるけど?
0576557
垢版 |
2019/09/07(土) 09:22:43.24
>>565
ありがとうございました!
0577名無しさん@そうだ選挙にいこう
垢版 |
2019/09/07(土) 12:22:52.97
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

関数について教えてください

 A  B  C
100 500 

AかBのどちらかが空欄だったらCも空欄
AとBの両方に数値が入っていたら、CにB-Aの値を表示させるには
どういう数式を組み立てたらいいでしょうか?

↓みたにさせたいです

 A  B  C
100 500 400
100    空欄
   500 空欄
0579名無しさん@そうだ選挙にいこう
垢版 |
2019/09/07(土) 13:21:20.85
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Office 365 Education
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否

私は学生でmosの2016年版の資格が取りたいと思っています
学生版無料Officeのexcelを最新から2016年にダウングレードすることはできますか?
もう2016年mosの本を買ってしまったのですが、最新版excelである程度やっていくというのはあまりよくないでしょうか?
最悪の場合2016年のexcelを今から買うしかないですよね
0582名無しさん@そうだ選挙にいこう
垢版 |
2019/09/07(土) 20:49:23.50
>>579
FOM出版のCD‐ROMインストールする模擬試験だと、どうしても(ver.の違いが原因で、合っていても)不正解になってしまう問題もあるので、それだけ本の解答で確認すれば大丈夫かな。
0584名無しさん@そうだ選挙にいこう
垢版 |
2019/09/08(日) 14:15:43.23
新規イオンカード発行で20%キャッシュバック祭り始まるぞ!増税前に大きい買い物するチャンス!

イオンカード決済で10%、イオン口座引き落とし設定で更に+10%
計20%最大10万円まで還元
https://i.imgur.com/0HjY856.jpg

入会時紹介コード1500P
https://i.imgur.com/TaIwhhO.jpg


※イオンカードセレクト(イオン銀行と一体型したクレカ)がオススメ
0585名無しさん@そうだ選挙にいこう
垢版 |
2019/09/08(日) 14:22:49.48
今までエクセルほとんど使ってなくて、イキナリ経理に移動になりバリバリ使うことになった。自習で使えるテキストでいいのあります?
緑色のFOMとか使ってた人います?
0586名無しさん@そうだ選挙にいこう
垢版 |
2019/09/08(日) 22:32:38.86
オレもいきなり経理に異動したがExcelはあまり使わなかったぞ
金庫の現金を管理するくらいだった
税理士の指定した経理ソフト使ってたから
0587名無しさん@そうだ選挙にいこう
垢版 |
2019/09/08(日) 23:59:19.84
経理ならExcelより奉行とかMJSとかPCAとか弥生の使い方覚えた方が…
大手なら他のもあるけど突然経理に配置転換する規模の会社なら
0589名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 00:55:31.05
経験者かどうかも確認せずに配置転換するぐらいの会社なら、必要な知識は行った先ですべて教えてくれると思って間違いないよ
0590名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 10:59:10.78
フィルタをかけた時のこの矢印はなんという名称なのでしょうか?
https://i.imgur.com/PJ4CZen.png
0591名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 11:56:13.03
>>590
プルダウンとかドロップダウンとか

といっても会社・・・というか人によって好きに呼んでたりする事も多いので、そこは臨機応変に。
0592名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 12:25:05.30
簿記とかいう無用の資格
0593名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 12:45:41.02
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

初心者です、ググっても見つからなかったので教えて下さい。
Excelで複数のパターンの数値を特定の数値にしたいのですが条件の分け方がわかりません。
具体的には、あるセルAの数字が
10以下の時→1.0
11以上15以下の時→0.8
16以上20以下の時→0.6
21以上25以下の時→0.4
26以上30以下の時→0.2
31以上の時→0.1
の6パターンについて、
右側の数値をセルBに表示させたいのですが、If関数の説明などでは2〜3パターンの条件分岐例ばかり出てきます。
このような指定は可能でしょうか?
0594名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 12:53:44.42
>>585
真っ当な会社なら
会計システムを導入してる
不正行為防止で誰が操作したのかの記録もする
経理でのexcelの用途なんて
会計システムでサポートしていない統計グラフを
作る事ぐらいか
ただの収支表ならどの会計システムでも作れるし
0596名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 14:49:40.30
windows7
2013
いいえ


シート1のA1からA10に入力されている10個のデータを、シート2のB列に上から順番にコピーしたいです
ただ、コピー先はB1,B3,B10,B14....のように行番号が不規則なため、どうしようか悩んでおります
どうすればよいでしょうか
0601名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 18:04:06.43
>>593
=IF(A1<=10,1.0,IF(A1<=15,0.8,IF(A1<=20,0.6,IF(A1<=25,0.4,IF(A1<=30,0.2,0.1)))))
をB1セルに入れる
要するに入れ子構造(ネスト)にする
最初のIF関数で10以下かどうか判断し、yesなら1.0
Noなら次のIF関数で15以下かどうか判断
以下繰り返し
ということ
11以上かどうかは10以下ではないという判断が済んでるから不要
A1に入るのが整数ならこれでOK
0602名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 20:10:42.08
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

"確認票"というシートと"集計表"というシートがあり
"確認票"はマクロ実行中に作るシートで、"集計表"はその"確認票"を参照した関数がたくさん入っているシートで、マクロ実行までは表示せず
マクロ実行の途中で表示させたいシートなのですが、"集計表"の各セルの値をVBAで書くのは大変なので、予め作っておきました。
しかし、"集計表"を作って"確認票"を削除してしまうと、"集計表"の関数もエラーになってしまいますので、"確認票"を削除しても記録しておく方法はないでしょうか?
0604602
垢版 |
2019/09/09(月) 20:36:58.35
>>603

"確認票"はマクロ実行中にできるものなので、予め作った"集計表"はマクロ実行前は
計算前の関数だけ入ったシートです。
0606名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 21:06:48.43
>>603
参照元が消えるのだから#REF!エラーが起こるのは当然かと
参照するのではなくて、集計表に値をコピペするしかない。
マクロ組めるならその作業を自動化すればええねん。
0607606
垢版 |
2019/09/09(月) 21:15:33.12
安価ミス
>>603じゃんくて
>>602

>>604
この確認表というのはどういうの?
シートじゃなくてフォームで作るべきじゃね?
0608585
垢版 |
2019/09/09(月) 21:25:53.51
返事くれた人達ありがとうございました。うちの経理はまだまだExcelをふんだんに使うみたいです。システムなどはまだまだだと思います。
あとExcelを自己研鑽にもしたいと考えています。事務職だとExcelから逃げる事は出来ないですよね?
自分の武器にしたいと思います。
0609名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 21:26:03.47
>>604
Excelでのフォームの作り方はググれば分かる。
単票フォームで「確認票」を作り直すのがオススメ
フォームで入力すれば集計表に値として保存される。
0610名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 21:30:35.09
>>608
フォームを作るにしても、レポートを作れる点でも
Accessの方が遙かに役に立ちます。
実際、自分はAccessでデータベース作って経理の仕事してましたし。
月間集計、年間集計も、予めレポートを設計しておけばフォーム上のボタンをポチッとするだけで
出力できます。
0612名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 21:40:31.50
>>608
逆にExcelでないとなという用途は万年カレンダーだけですかね。
0613名無しさん@そうだ選挙にいこう
垢版 |
2019/09/09(月) 22:32:03.76
>>602,604
マクロ実行中に作る”確認表”シートは、最終的に削除してしまう。・・・ここを変えたらどうですか?
”確認表”シートを通常は非表示にしておいて、必要な時に再表示するとか。マクロで制御したら
操作する人にはパッと現れ、パッと消えるように見える。
シート自体は消えないからエラーにもならない。
0616名無しさん@そうだ選挙にいこう
垢版 |
2019/09/10(火) 08:02:43.54
>>611
そういうならパッケージソフト入れるべき
Excelで経理うんぬんならAccessの方が楽という例
示しただけ
0617名無しさん@そうだ選挙にいこう
垢版 |
2019/09/10(火) 08:08:54.18
>>604は参照と複写の違いを理解してないんだろな
クエリとテーブルを同一視するのと同じ
0618名無しさん@そうだ選挙にいこう
垢版 |
2019/09/10(火) 12:49:29.98
>>602のいう確認票は集計表に保存したいデータを入力するためので、参照の意味を理解してないから
集計表に確認票のセルを参照する式を入れてる
実験としては興味深いが、それ以上に奇妙な作り
何でわざわざ確認票を毎回削除して生成してるのかは不明
ちなみにシートを削除した時点で
excelのシステムはそのシートにあったセルを参照する式に
#REF!を設定するするから、無意味なんだよね
何にせよかなり奇妙な事してる
もうレス無いから放置でええなと
0619名無しさん@そうだ選挙にいこう
垢版 |
2019/09/10(火) 14:52:58.79
DF4とDU4の値のいずれか高い数値が1以下であれば
14行目〜15行目を削除
DF4とDU4の値のいずれか高い数値が2であれば何もしない
DF4とDU4の値のいずれか高い数値が3以上であれば、その値の回数を
14行目〜15行目をコピーして、16行目以降に2行づつ貼り付ける

というコードを教えてください<(_ _)>
0621名無しさん@そうだ選挙にいこう
垢版 |
2019/09/10(火) 16:15:39.42
>>619 実際に試してません、あしからず。
Dim 値 as Integer ' DF4,DU4とも整数という前提です
Dim cnt as integer, セル as Range

With ActiveSheet    ' 処理対象シートの指定
  値 = .Range("DF4").Value
  If 値 < .Range("DU4").Value Then 値 = .Range("DU4").Value
  Select Case 値
  Case Is <= 1
    .Rows("14:15").Delete
  Case Is = 2
    ' なにもしない
  Case Is >= 3
    .Rows("14:15").copy
    Set セル = .Range("A16")  ' 貼り付け開始位置
    For cnt = 1 to 値  ' 3以上のときはその値回数分貼り付けを繰り返す
      セル.PasteSpecial Paste:=xlPasteAll  ' 貼り付ける種類はお好みで
      Set セル = セル.Offset(2, 0)         ' 貼り付け先を2行下へ
    Next cnt
  End Select
End With
もし、”高い数値”が3のときの貼り付けは1回 ということであれば For cnt = 3 to 値 に変更してください。
0623619
垢版 |
2019/09/10(火) 20:34:21.29
>>621

ありがとうございます。勉強になりました<(_ _)>
0624名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 08:09:15.75
>>620
どっから権限の話出た?
君の脳内?
0625名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 09:28:19.87
>>624
普通に考えてExcelの話してるのにAccessで良いじゃんて話して、いやExcel使ってるんだけどと言われてじゃあパッケージソフト入れれば良いって話通じてなさすぎじゃね

後から来た新入りがAccessに変えましょう!とかパッケージに入れ替えましょう!とか言えないでしょって話だろ
0626名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 12:25:12.51
>>625
そんな事知らんがな
Excelを万能ツールとでも思ってるの?
0627名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 13:03:06.47
シート"計算"のB1から最下行のCV列までコピーし、シート"累積"の最下行に貼り付ける。
最下行はシート「計算」・「累計」共にB〜CVまでのいずれかの最下行

このコードを教えてください。
0629名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 17:51:56.67
「今年」シートのE列に「商品名」、G列に「製造日」、J列に「製造工場」が入っていて、
別の「指示書」シートのC列に商品名、E列に製造日、H列に製造工場を入力すると、
I列に「今年」シート商品名・製造工場が一致するなかでG列から今日の日付から最も近い前回製造日が表示される関数を組みたいです。
3つの条件のうち2つ一致する中から1つの近い条件の引っ張り方がこんがらがっています。
MATCHとかDGETとか調べてやっても返ってくるのはエラーばかり…
どなたかご教授をおねがいします!
0631名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 19:01:15.71
>>629
VBAマクロなしだと・・・ピボットテーブルとの組み合わせかなあ。
今年シート対象でピボットテーブルで行方向に商品名、列方向に製造工場、値フィールドに最大値を指定すると、
商品名と製造工場の組み合わせ別に最大値=最新の日付の表が出来上がる。
あとはINDEXlとMATCHを行方向、横方向で組み合わせればなんとかできそうですが。

ところで、指示書シートのE列(製造日)は、今回の質問には関係しませんよね?
0632名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 19:12:35.64
>>629
商品名と製造工場を文字列連結で繋げて(K2 = E2 & "-" & J2 みたいに)単独のキー列にしてしまえば後の処理が楽なんじゃないかな
それで、ソートが許されるなら製造日(G列)で降順でソートしたら、K列をキーにしてVlookupで拾える
vlookupだと製造日をK列より右側にコピーしないとならんけど
0633名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 19:20:30.27
>>629
=MAXIFS(今年!$G$2:$G$10,今年!$E$2:$E$10,C1,今年!$J$2:$J$10,H1,今年!$G$2:$G$10,"<"&now())
範囲は適当
該当日付が無かったら0になるから必要なら好きにエラー処理して
0634名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 19:22:33.90
>>631
629です。指示書シートは同一ファイル内にあります。
今年シートのデータベースから探してこの商品が前回いつ作ったかを指示書シートのI列に表示する目的でした。
0637名無しさん@そうだ選挙にいこう
垢版 |
2019/09/11(水) 19:34:54.90
>>627
今日は調子いいから書いて上げる

Sub foo()

'前処理
Set 計算シート = Sheets("計算")
Set 累積シート = Sheets("累積")

With 計算シート.UsedRange
計算シートMaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
End With

With 累積シート.UsedRange
累積シートMaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
End With

'コピー
計算シート.Activate
Range("B1:CV" & 計算シートMaxRow).Copy

'貼り付け
累積シート.Activate
Range("B" & 累積シートMaxRow + 1).Select
Selection.PasteSpecial

End Sub
0638631
垢版 |
2019/09/11(水) 19:36:30.55
>>633
自分が参考にしているエクセル関数の解説本(2007まで対応)に載ってなかったので調べたら
Excel2016からの新機能なんですね。まだ2010、2013を使ってる方も多いかと思うのでみなさんご注意を。
参考サイト ttps://dekiru.net/article/14292/
0646627
垢版 |
2019/09/11(水) 21:51:33.89
>>637

ありがとうございます。
0647名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 09:00:59.69
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 初歩
【4 VBAでの回答の可否】 否

毎月の売上商品ごとの構成比を積み上げ棒グラフで表したいのですが縦軸に金額を表示させ棒のラベルに構成比(%)の表記ってできますか?
(縦軸→金額 横軸→月 棒のラベル→構成比%)
上司からのこの見せ方で作ってくれとの指示で色々いじってみたのですか縦軸が金額だとラベルも金額って感じにしか出来ないっぽくて困っています
0648名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 14:07:47.95
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

代金を入れたら佐川急便の代引手数料が出るようにしたいです
https://www.sagawa-exp.co.jp/service/e-collect/
代引金額 代引手数料(税別)
1万円以下 300円
3万円以下 400円
10万円以下 600円
30万円以下 1,000円
50万円以下 2,000円
60万円以下 6,000円
60万円超は10万円増す毎に 1,000円を加算(代引手数料例参照)

難しいのは「60万円超で10万円ごとに1,000円加算」のところです
なぜならここでいう「代引金額」には代引手数料自らが含まれるからです

=INT(([代金]+99999)/100000)*1100

でそれっぽいのは算出できるのですが、代金が「79万5千円」とかの場合に
9,900円ではなく8,800円となってしまいます
0649名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 14:18:30.31
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可


「シート"model2"のDE2に1を足して、"Sub MaCroG07()"を実行」を
DE2の値がDS2の値に達するまで繰り返し、DE2の値がDS2の値を超えたら処理を終了する

というコードをご教授願います。
0650名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 15:13:13.40
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】

629です。テンプレ無視しての質問失礼しました。
2010なので厳しそうですね
0651631
垢版 |
2019/09/12(木) 16:01:57.71
>>650
MAXIFS関数が使えなければ、奥の手「配列数式」でなんとかなりそうです。>>633を参考にしました。
「指示書」シートのH1セルに
=MAX((今年!$E$2:$E$10=C1)*(今年!$J$2:$J$10=H1)*今年!$G$2:$G$10) まで入力したら
[Shift]キーと[Ctrl]キーを押しながら[Enter]キーを押す。
→{=MAX((今年!$E$2:$E$10=C1)*(今年!$J$2:$J$10=H1)*今年!$G$2:$G$10)} と表示される。
{ }で囲まれた状態が配列数式であることを示します。
注意1 >>633さんの式から 今年!$G$2:$G$10,"<"&now() 相当部分は省略しました。

注意2 H1セルを編集状態にすると { } が消えてしまいます。
その際は必ず [Shift]キーと[Ctrl]キーを押しながら[Enter]キー を入力してください。配列数式の注意事項です。

MAXIFS関数などの”IFS”がらみの新しい関数は、配列数式の取り扱いの難しさを解消するためなのかな?
0652名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 16:39:34.61
>>648
佐川に問い合わせるのが確実だと思います。

>>649
開始条件がちょっとあやふやなんだけど・・・ こんな感じでしょうか  試してません、あしからず
with WorkSheets("model2")
  .Range("DE2").Value = .Range("DE2").Value + 1      ' 最初に+1を実行する?しない?
  Do While(.Range("DE2").Value <= .Range("DS2").Value)
    Call MaCroG07()
    .Range("DE2").Value = .Range("DE2").Value + 1
  Loop
End With

最初からDE2とDS2の値が同一からスタートすると、Do While文の直前にDE2に+1してるので
MaCroG07()を一度も実行せずに終了します。
0655名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 22:19:00.39
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可

PasteSpecial xlPasteAll
で貼り付けていますが、罫線が所々切れます。
解決策を教えてください。
0657名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 22:54:01.85
>>647
セルを方眼紙みたいにするか、図形でグラフっぽいものを作ればいい。
無理にグラフ機能を使う必要はない。
そんなことを言ってくるような上司じゃ、どうせ違いなんかわかりゃしないから。
0658655
垢版 |
2019/09/12(木) 23:23:06.04
>>656

たとえば列10セル、行10セルに罫線を引いたとして、中心の数か所と、一番下の罫線が消えてしまいます。
0660名無しさん@そうだ選挙にいこう
垢版 |
2019/09/12(木) 23:58:05.03
一番下の罫線は11行目のセルの上罫線だからじゃないかな
中心はなんでだろうね
0661名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 00:16:26.81
罫線込でコピペすると予期しない結果になることあるからフォーマット用意しておいて値だけハメ込むか、後から罫線引く方が確実だし楽
0662名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 00:31:23.34
>>655
複写元がひとつのセルと仮定します。そのセルには上下左右に線があるように見えます。
しかし、そのセルに属する罫線とは限りません。なぜかと言うと・・・
当該セルの左隣の右縦線
当該セルの上隣の下罫線
当該セルの右隣の左罫線
当該セルの下隣の上罫線  かもしれないからです。
なので、当該セルだけを普通にコピペしても複写先には罫線が引かれないということもありえます。
>>659さんが書いてるように、複写元と複写先のセルの書式設定の罫線の設定を見比べるのが大事です。
0663名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 00:47:16.64
>>655
まさかとは思うけど、Excel2016の制限に引っかかってるかも?
ttps://www.helpforest.com/excel/ex_list/ex110006.htm
ヘルプの森 というサイトの Excel2013,2016制限・仕様 一覧  のページの中に
セルの固有の書式設定/セルのスタイル 64,000
というのがありました。参考まで。
0664名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 09:43:36.05
>>654
それだと「79万5千円」が8,000円になる
0665名無しさん@そうだ選挙にいこう
垢版 |
2019/09/13(金) 10:34:28.48
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

売上データをマクロで処理しています。シートの名前についてご質問です

元データをフィルタして
シート1にコピー(営業1部)、
さらにシート1をフィルタしてシート2にコピー(地域でフィルタ)、
という処理を行っています

この時シート1のシート名は
・営業一部
・営業一部_地域別
どちらが良いでしょうか?
0666666
垢版 |
2019/09/13(金) 13:17:49.87
666
0668629
垢版 |
2019/09/13(金) 18:20:55.64
>>655
御回答ありがとうございます!やってみますね!
0669629
垢版 |
2019/09/13(金) 18:24:22.71
安価ミス
>>651さんありがとう!
0674名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 14:23:58.30
>>673
AutoFilterで "<>*標準価格}*" の条件で絞って一括削除とか、
if not セル文字列 like "*標準価格*" then 行削除 を削除したい範囲分回すとか
行数大量なら前者
0677名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 23:53:42.37
E-Zの1行目は必ずなにかはいってるの?
0679名無しさん@そうだ選挙にいこう
垢版 |
2019/09/14(土) 23:59:05.20
右列から消していかないとダメなやつじゃないの
0680676
垢版 |
2019/09/15(日) 00:06:12.33
>>677
1行目は必ず入っています。

>>678
ありがとうございますm(_ _)m
0681名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 00:17:25.96
マクロで、例えば
「Z55に"X"が入っていたらF55とG55のセルを黄色く塗りつぶす」
とか
「AD6に"X"が入っていたらY6を黄色く塗りつぶす」
をする書き方をお教えください
0684名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 01:16:32.48
Columns("Z").ColumnはCells(,"Z").Columnとも書ける
1文字しか減らないけど、よく似た単語の連続よりは読みやすいと個人的に思って愛用してる
0686名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 01:44:46.44
Columns("Z")の方が明確だろw
まぁ俺はRange("Z:Z")派だけどな
0689名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 09:17:54.42
>>671
シート1はフィルタかけたまま放置?
そうでもない限り、シート名はフィルタをかける前の状態をもとにするのがセオリーでしょ
0690名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 09:22:27.27
>>688
今手元にExcel無いから確認できないけど、selection.address(false,false)じゃ無理?
0692名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 14:21:47.31
excel2013なんですけど、フォント変更の操作と半角英数入力の時だけやたら遅くなるんですが何故だかわかりますか?

オフィスの修復やらフォントキャッシュの削除やら調べてみては色々やってみたんですけど解決に至りません
wordやインターネットブラウザでは何の問題もなくexcelの時だけなんです
0693名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 14:23:55.02
>>692
書き忘れてましたがosはwindowsです
0695名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 14:44:45.84
>>694
google日本語入力もやってみましたがダメでした
他のオフィスソフトやインターネットブラウザなどは何の問題もなかったのでexcelに原因があるんじゃないかという気がしています
既存のファイルも新規のファイルも同じ現象が起きています
0698名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 15:15:16.61
>>696 >>697
ちょっと試してみます
0700名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 16:04:46.86
人に教える時は自分の拘りの書き方ではなく明確で基本的な書き方で教えるもんだよ
あとはそこから本人が好きなように弄ればいい
0701名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 16:42:26.07
>>687
ありがとうございます。


もう一つIFを勉強するために↓を書いたのですが、動きません。
正しい文法を教えてください。


'GJ列の2行目以降が"X"であれば、同じ行のCG列のセルをを黄色く塗りつぶす

For r = Cells(Rows.Count, "GJ").End(xlUp).Row To 2 Step -1
If Cells(r, "GJ").Value = "X" Then
r.Offset(0, -107).Interior.Color = RGB(255, 255, 0)
End If
Next r
0705名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 19:17:56.87
>>690
え パラメータの指定ができるプロパティなんてあったんだ
0706名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 19:30:11.30
>>703
dim a as object
dim r as range
dim s as string
set a = selection.areas
s = ""
for each r in a
s = s & r.address(false,false) & ","
next
s = left(s,len(s)-1)

これで変数sにカンマ区切りのアドレスが返るはず。自分は確認不能です
0707名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 19:34:16.62
>>704
$取るのは後処理のためだと思うけど、それならoffset使う方が楽じゃね?
0708名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 19:40:32.07
>>705
rangeのプロパティだけでもENDがあるし、他にもあったと思うけど思い出せない
0710名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 20:39:42.91
>>692です
再インストールやフォントの削除でもダメだったんで復元したら正常になりました

レスをありがとうございました
0711名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 21:16:00.70
>>707
いや、列番号から列のアルファベット調べるのに使ってた。
SQLで範囲指定する時、From [Sheet1$A:F] とか書かなきゃいけないんで。
数字で指定する方法があれば良いんだけど。
0712名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 21:55:46.21
>>711
R1C1形式じゃいかんの?
add = range(columns(1),columns(6)).address(false,false)

addは"A:F"を返すはず
0713名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 23:17:29.18
VBAってどう勉強すればいいのですか?
アビバとかで教えてもらえるんでしょうか?
0714名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 23:21:27.88
>>702

ありがとうございます。この文でできました。

For r = Cells(Rows.Count, "GJ").End(xlUp).Row To 2 Step -1
If Cells(r, "GJ").Value = "X" Then
Cells(r, "GJ").Offset.(0, -107).Interior.Color = RGB(255, 255, 0)
End if
Next r

最後に、↑ではCGだけが対象でしたが、例えばCGとCHの2列を対象とした場合はどう書けばよいでしょうか
0715名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 23:27:14.64
>>714
並べて書けば良い

For r = Cells(Rows.Count, "GJ").End(xlUp).Row To 2 Step -1
If Cells(r, "GJ").Value = "X" Then
Cells(r, "GJ").Offset.(0, -107).Interior.Color = RGB(255, 255, 0)
Cells(r, "GJ").Offset.(0, -106).Interior.Color = RGB(255, 255, 0)
End if
Next r

ってかオフセットよりcolumn直接書いたほうが見やすい様な?まぁどっちでもいいけど

For r = Cells(Rows.Count, "GJ").End(xlUp).Row To 2 Step -1
If Cells(r, "GJ").Value = "X" Then
Cells(r, "CG").Interior.Color = RGB(255, 255, 0)
Cells(r, "CH").Interior.Color = RGB(255, 255, 0)
End if
Next r
0716名無しさん@そうだ選挙にいこう
垢版 |
2019/09/15(日) 23:47:16.14
>>715

ありがとうございます。勉強になりました<(_ _)>
0718名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 02:26:53.07
A列に"行程"が入っていたら↓のマクロを実行するコードを教えてください
A列には数か所"行程"があります。

Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin

つづく・・・
0719名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 02:27:13.65
つづき・・・
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlHairline
End With
0724名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 12:38:02.60
テーブル使ってテーブル名でも行けるよ
0725名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 12:38:41.86
つか、シート全体がデータしかないならシート名だけで行ける
0726名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 12:45:36.22
計算式の連続コピーに関する質問です

例えばB1にA1+A2+A3、B2にA4+A5+A6、B3にA7+A8+A9…
と言った感じにしたいのですが、B1とB2に上の計算式を入力してオートフィルをかけた場合にはB3にはA3+A4+A5、B4にはA6+A7+A8と思うようにコピーできないのですが、解決策はありますか?
0727726
垢版 |
2019/09/16(月) 13:06:31.57
A1〜A3をA1B1C1にしてD1に計算結果、A4〜A6をA2B2C2にしてD2に計算結果…
という風にしたらオートフィルでできると思いますが、あくまでこれは例えなので、実際やる予定のものはA列が1000近くあるので横にするのがかなり面倒なので実質不可能です
0728名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 13:22:41.88
>>726
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
0730名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 13:32:09.60
テーブルが表でええ感じやん
データ処理、うぷでーとももvbaデカンタそう
よくわからんのがクーエリどれだけ構文できるかやな
0734名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 14:06:14.64
>>726
OFFSET関数で可能です。
B1セルに =SUM(OFFSET($A$1,(ROW()-1)*3,0,3,1)) と入力してフィルコピーするだけ。

OFFSET関数の引数は左から 基準セル、縦方向にずらす行数、横方向にずらす列数、
セル範囲を指定するときの行数、列数 となります。
縦方向にずらす行数は1次方程式の考え方で (ROW()-1)*3
横方向はずらさないので 0
セル範囲は3行×1列なので 3、1 ということです。
0736名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 14:33:14.51
サンクス
特定用途なら使えるし、開発は片手間レベルでできそう
大きいのは、別のえすくーえるつかつえばええよな
エクセルの帳票作成がそのまま利用がええな
久々にやる気出るわ
なんでもかんでも禁止なんだもん
関数、バワークエリーで通常業務しながら片手間で開発できるな
0738名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 14:50:25.00
PQは引っ張る専門
更新・蓄積は専門外
だからPQあればDBがいらいというわけじゃない
0739名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 14:55:34.93
>>720

罫線を書くマクロ記録で作ったものです。しかし自動で繰り返しをしたいので、コードをおしえてください。
0740名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 14:59:23.37
>>737
ありがとう
ピボツトともかくえすくーえるはしってるから
あんまり壁は感じない
これでアクセスなしでも闘えるわな
アクセスはメンテナンスも面倒だわ
リモートディスプレーだと頻繁に物壊れるし、おにもつかしとる
0741名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 15:02:39.17
>>738
わかっているが
更新はセル書き換えるだけじゃん
もちろんvba使えば普通に書き換えれるが
マクロ使えんのだわ
さいこうのかいひほうほうやとおもう
0747名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 15:38:16.81
PQはキー使った結合系は一通りできて、複数テーブルの統一もできる
計算フィールドも入れ込めるし、スクリプト書ければ動的に空のダミーテーブルとサンプリング用のダミーデータを作って
簡易のクエリ代わりにすることもできる
条件分岐もループもできる
コード書けるピボットという感じ
あと、ピボット状態のデータのテーブル化もできて、見たいデータを取り出す部分に関してはクソ便利
0748名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 15:40:46.10
データは自ブックが保存さえしてあれば、自ブック内のテーブルのデータソースに使えるようになって手軽になった
勝手にクエリの定義が残るから、ワンメイクで取り出したいだけの場合はVBAで消すコード書く必要があるのは相変わらず
0749名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 15:43:02.96
パワーピボットは、PowerBIっていうExcelとは別の独立したアプリの1機能じゃなかったかな
PQは、ベースはPowerBIの仕組みで、Excelからそれを利用できるようにした豪華なアドイン、といった位置づけ
0750名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 15:44:38.42
BIにはBIでグラフとかフォームとかの機能が別にあるんだけど、
PQはBIの中のデータを引っ張る所だけを利用できる感じ
0751名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 15:48:47.05
そんな事情でPQでの処理を各コードとはVBAとは別の専用言語。通称「M言語」ってやつ。
PQだったらPQエディタ内で書けるし、書いたコードをVBAから実行したい場合は文字列の形で専用のオブジェクトに渡す
WorkbookQueryオブジェクトだったかな。今までのSQLを文字列で渡すのと同じような感覚
0752名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 15:49:21.60
× 各コードとは
〇 書くコードは
0754名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 16:01:40.33
>>753
その場で動的に作ったダミーのテーブルと結合できるんだよ
Excelのフィルターオプション機能を全部コード上でやる感じかな
0755名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 16:03:03.65
本格的に調べたわけじゃないけど、ざっと見た感じ、365環境ならこれあればいいじゃん、って感じだった
問題は未だに2010使ってますとか言うクソみたいな環境が多い事だけ
0757名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 16:37:11.08
>>756
単純に既存のデータ引っ張りたいんだったら、SQLと同じ感覚でMでクエリ書けばOKだよ
それに加えて、その場で独自の拡張したい(商品コードに合わせてDB内には無い商品名の略称を入れ込みたい、等)の
部分があれば、ダミーテーブル作ってPQ内で結合するだけで一気にできる感じ
いろいろ小回りが利くようになってる
0764名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 18:28:33.60
>>761
sumproductみたいな応用的な関数はあとからでいい
応用的な関数は基本的の組み合わせで実現できる事が多い
基本的な関数が使いこなせなければsumproductで解決なんて無理
0765名無しさん@そうだ選挙にいこう
垢版 |
2019/09/16(月) 19:18:56.89
>>729
>>729
例えば、簡易なWebスクレイピング

例) 東京電力の停電情報の、マップがない「市区町村内地区別一覧表」のデータ取得
http://teideninfo.tepco.co.jp/html/12234000000.html

※ 県内の「市区町村別のマップ」までは東電サイトにある。
http://teideninfo.tepco.co.jp/flash/index-j.html

A. 9/12 21:39現在の南房総市のページスクショ
https://i.imgur.com/QqdoY4c.png

B. これをExcelの「メニュー−データの取得と変換−Webから」でPower Queryが起動し、
URLを指定するとExcelにはこんなふうに取り込める。
https://i.imgur.com/sYPh5s2.png
(続く)
0766765
垢版 |
2019/09/16(月) 19:20:12.43
>>729
(続き)
※ Power Query内の、1つのクエリー内であれば、
列を追加、番号を振る、重複を削除、値の置換、列を追加しての簡単な計算・・・
等をそれぞれマクロのようにして順番に処理することが可能。
2つ以上のクエリーやテーブル(範囲)を合体させることも可能。

※ Power Queryの関数は "M function" まだ、英語版の説明しかない模様。
https://docs.microsoft.com/ja-jp/powerquery-m/power-query-m-function-reference

・PQエディターを開いたところ
https://i.imgur.com/0pC3TPn.png
右側の「適用したステップ」の一覧が、個別のマクロみたいなもの。

・「詳細クエリー」画面の中身
https://i.imgur.com/vBHPEEr.png
エディターのボタンメニューで操作した内容が、スクリプトになっている。
ステップの途中で列名を変更を挿入したりするとエラーが出るので、
ここで直接修正したり、とか。
(続く)
0767765
垢版 |
2019/09/16(月) 19:20:54.76
>>729
(続き)
C. この表の場合は、「地区」と「停電軒数」を1セットとして2列になっているので、
Excelのsheetの範囲を元にして再度PQで分割・合体したテーブルを作ってみた。

D. 後は文字列を数値化するのにはExcelの文字列関数の方が得意そうなので、
sheet内のC.のテーブルの右に列を追加してExcel関数処理とか。
こんな感じ。(深緑の列がsheet内で作業列を追加してExcel関数で処理した部分)
https://i.imgur.com/1eQdwu2.png

後はExcelの3Dマップ使って棒グラフ作るとか。
こんなのとか。
https://i.imgur.com/Lj9hgtb.png
3Dマップも脚注などはまだ手動入力するしかなさそうだけど。
(続く)
0768765
垢版 |
2019/09/16(月) 19:27:16.33
>>729
(続き)
Power Pivotの方はまだ使ってみていないけれど
https://i.imgur.com/Izmfl2c.png
自己流の手探りでPQだけ使ってみた
Power Queryの泣き所は、

1. Webスクレイピング機能はあくまで簡易で、html記述まで入り込んでの指定は出来なさそう。
東電停電情報の場合は、一覧表の外の「データ更新日時」や「合計停電軒数」を指定出来ないため、手入力した。
→ このあたりはPythonの方が得意か?

2. 1つのbook内で複数のクエリーがある場合、シーケンシャルに更新できない。
作った各クエリーは計算手順上、順番に再計算させたいのに、
個別のクエリーを指定して更新するか、全てのクエリーを更新するか、しかない。
後者の場合は同時並行で再計算してしまう模様。
→ 確実にシーケンシャルに再計算させるには、今のところVBAかますしかないのかな?
(終わり)
0776名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 00:31:00.75
SUMPRODUCTって便利だってよく聞くから覚えようと思いつつ応用のさせ方がイマイチ分からず後回しになってる
この機に覚えます!
0777名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 00:56:38.02
>>775
うーん・・・

VBAが出来ること全てをPQで出来るわけではなさそうだけど、
「VBAのようなプログラミング言語の文法を覚えなくても、作れるマクロ/いじれるマクロ」
という意味では、いけるかも?

大容量データを全て関数処理したら重くなる。
PQだと、小分けにしてステップを切れるのが良いところ。
ただし、今のところ更新は、手動で1つ1つ実行だし、
各ステップの分岐判断やループは出来なさそう。

他のbookからリンク参照するのは、ファイルのディレクトリや名前をいじるとすぐリンク切れるから、
それよりはPQでの修正はしやすい。

リンクだと、基本1セル。
PQだと、他のbookのテーブル/範囲まるごと、コピーしてくる感じ。

ただし、参照先のbookの最終更新時刻なんかのファイル属性を参照する関数が、
PQのそれには見当らないのは頂けない。
0778名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 13:02:47.77
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

seleniumVBAを使ってchromeを操作しようとしたのですが、あるところでNot found elementエラーが起き、原因が不明です。
基本的に
0779名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 13:07:21.65
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

seleniumVBAを使ってchromeを操作しようとしているのですが、あるところでNot found elementエラーが起き、原因が不明です
・F12でデベロッパーツールを表示して、操作したい要素のidやnameやXpathをコピーしているので、ここの誤入力はないと思います
・iframeやframeの中の要素でないことも確認しました
・フォーカスしているchromeのタブが間違っていないことも確認しました
・.wait()メソッドでwebページが表示しきるまで待機しました

何かアドバイスを頂ければと思います。
0781名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 14:36:36.79
上記の質問に関連してなのですが、

Aframe
Bframe-Cframe
     -Dframe

以上のような階層のframeがあったとして、A,B,Cframeの要素は、SwitchToFrameメソッドでframeを指定して取得することができました。
しかし、Dframe内の要素が取得できません。(element not found for・・・)
このページに遷移する前に、ほぼ同じことをして、そこではうまく取得できているのですが・・・ 何故でしょうか

連投申し訳ございません。
0786名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 19:12:53.52
今時ネットで検索の仕方判らないってやばいぞ…
つーかみんなで編集してるっぽいQ&Aってネットにあるやつじゃないのか
0787765
垢版 |
2019/09/17(火) 19:33:27.07
>>768
> 1. Webスクレイピング機能はあくまで簡易で、html記述まで入り込んでの指定は出来なさそう。
> 東電停電情報の場合は、一覧表の外の「データ更新日時」や「合計停電軒数」を指定出来ないため、手入力した。
> → このあたりはPythonの方が得意か?

このあたり、Power Queryの「HTML ページ」形式での読込み設定では
「地区ごとの一覧表」しか読み込めなかったんだけど、
あれから「もしや?」と思って、
PQの「Webから」の読込みで
・URLを指定するのは同じで
・「形式を指定してファイルを開く」を「テキスト ファイル」
・「元のファイル」はどうやらエンコード指定みたいで、東電停電情報の場合、「10001: 日本語 (Mac)」だと、漢字が文字化けせず、よさげ。
https://i.imgur.com/JHHgcOm.png

で取り込むと、htmlのスクリプトを各行Text形式で読めた。
https://i.imgur.com/9zYJHsP.png

スクリプトの行番号等が改変されなければ、Pythonまで使わなくても、PQで同時に取り込めるかも。
0788名無しさん@そうだ選挙にいこう
垢版 |
2019/09/17(火) 21:22:51.80
B2〜L2を結合させたセルがあり、シートのF列だけを削除することはできるのですが、
マクロ記録で作った構文

Columns("F:F").Select
Selection.Delete Shift:=xlToLeft

を実行させると、B列からL列が消えていしまいます。
F列だけ削除するにはどうすればよいでしょうか
0790788
垢版 |
2019/09/17(火) 21:46:13.28
>>789

ありがとうございます<(_ _)>
0792名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 00:36:57.35
自動的にセル名を定義する方法はありますか。

例えばA1セルに「野菜」と入力したら、
自動的にA1:A10の範囲が「野菜」セルと
してセル名設定され、A1を「果物」変更
するとセル名も自動で変わるようにしたいです。
0793名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 13:09:29.17
ブックAのシート1〜iまでのA1セルの数字を合計した数字をブックBのA1セルに転記したいです
vbaでなんとかならないでしょうか?
0795名無しさん@そうだ選挙にいこう
垢版 |
2019/09/18(水) 18:57:04.69
D2〜Gの4列中に含まれる"株式会社"・"有限会社"・"支店"を消す下の構文を作ったのですが
効果が同じシートの全てのセルに適応されてしまいます。D〜Gの範囲内に収めるにはどう書くのが正しいのでしょうか

i = Cells(Rows.Count, 1).End(xlUp).Row

Range("D2:G" & i).Select
Cells.Replace What:="株式会社", Replacement:=""

Range("D2:G" & i).Select
Cells.Replace What:="有限会社", Replacement:=""

Range("D2:G" & i).Select
Cells.Replace What:="有限会社", Replacement:=""
0797796
垢版 |
2019/09/18(水) 19:39:02.28
>>796

勉強になりました ありがとうございます
0799名無しさん@そうだ選挙にいこう
垢版 |
2019/09/19(木) 18:15:05.74
A列〜J列に空白のセルがあれば、そのセルの1つ上のセルをコピーする
(A列の最終行まで繰り返す)ができるコードを教えてください。

*1行目と2行めは必ず値が入っています
0800名無しさん@そうだ選挙にいこう
垢版 |
2019/09/19(木) 20:02:01.15
a列だけhttps://docs.microsoft.com/ja-jp/office/vba/excel/concepts/cells-and-ranges/fill-a-value-down-into-blank-cells-in-a-column

Sub FillCellsFromAbove()
' Turn off screen updating to improve performance
Application.ScreenUpdating = False
On Error Resume Next
' Look in column A
With Columns(1)
' For blank cells, set them to equal the cell above
.SpecialCells(xlCellTypeBlanks).Formula = "=R[-1]C"
'Convert the formula to a value
.Value = .Value
End With
Err.Clear
Application.ScreenUpdating = True
End Sub
0802名無しさん@そうだ選挙にいこう
垢版 |
2019/09/19(木) 20:19:08.89
>>801

できました。ありがとうございます
0803名無しさん@そうだ選挙にいこう
垢版 |
2019/09/19(木) 21:12:47.03
>>799
もう1列使えば、数式だけでいける
A列が元データで、B列が空白を埋めたデータの場合
b2に"=if(IsEmpty(a2),b1,a2)"を入力して下向きにフィル
0805名無しさん@そうだ選挙にいこう
垢版 |
2019/09/19(木) 22:18:42.68
https://dotup.org/uploda/dotup.org1948859.zip.html
このファイルでマクロを実行すると、自分の理解では「if k=3 and m=1 and Range(E10).Value <= m(=1)」となる瞬間が来て、、
G10セルはAになるはずなのですが、どうしてもすべてBになります
どこが間違っているのでしょうか?
0807名無しさん@そうだ選挙にいこう
垢版 |
2019/09/19(木) 23:35:19.41
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 コピペだけできます。
【4 VBAでの回答の可否】 可

"元帳"というマクロを実行するBookの中に"請求一覧"というシートがあります

そしてそのBook"元帳"と同じフォルダ内に、さらに"請求書"と言うフォルダがあり、その中に複数の.XLSファイルがあります。
その複数の.XLSファイルのそれぞれの"Sheet1"のA列〜K列の2行目から最終行(A列)までをコピーして
シート"請求一覧"の最終行(A列)に貼り付けて追加していくコードをおしえてください。
また、マクロを実行する"元帳"bookが入っているフォルダアドレスは変動しますので、自動取得できるようにしていただけると助かります。
0808名無しさん@そうだ選挙にいこう
垢版 |
2019/09/20(金) 00:43:19.56
>>807
コピペだけを「使える」とは言わない
Dim path As String
Dim ws1 As Worksheet
Dim wb As Workbook
Dim ws2 As Worksheet
With ThisWorkbook
 path = Dir(.path & "\請求書\*.xls")
 Set ws1 = .Worksheets("請求一覧")
End With
Do While path <> ""
 Set wb = Workbooks.Open(path)
 set ws2 = wb.Sheets("Sheet1")
 ws2.Range("a2:k" & ws2.Cells(Rows.Count, 1).End(xlUp).Row).Copy ws1.Range("a" & ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1)
 End With
 wb.Close (False)
 path = Dir()
Loop
0810名無しさん@そうだ選挙にいこう
垢版 |
2019/09/20(金) 13:07:32.49
>>808

Dim path As String
Dim ws1 As Worksheet
Dim wb As Workbook
Dim ws2 As Worksheet
With ThisWorkbook
path = Dir(.path & "\請求書\*.xls")
Set ws1 = .Worksheets("請求一覧")
End With
Do While path <> ""
Set wb = Workbooks.Open(path)
Set ws2 = wb.Sheets("Sheet1")
ws2.Range("a2:k" & ws2.Cells(Rows.Count, 1).End(xlUp).Row).Copy ws1.Range("a" & ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1)
wb.Close (False)
path = Dir()
Loop

試しに"請求書"フォルダに"20"・"25"・"30"というXLSファイルを入れて試したのですが

実行時エラー'1004':
申し訳ございません。20.XLSが見つかりません。名前が変更されたか、移動や削除が行われた可能性があります。

がでて処理が止まります。
0813名無しさん@そうだ選挙にいこう
垢版 |
2019/09/20(金) 19:59:57.36
xlsxは圧縮されているので、速度的に複数ファイルの読み取りには向いてないと思うんすよ。
代わりにxmlが良いんじゃないかと思うんすけど、どうっすかねぇ?
そんなの気にするのは少数派?
0814765
垢版 |
2019/09/20(金) 21:21:57.67
>>768
> 2. 1つのbook内で複数のクエリーがある場合、シーケンシャルに更新できない。
について、どうやらそれらしい設定方法が分かったので報告。

各クエリーに設定される「接続のプロパティ (クエリ プロパティ)」のうち、
 「バックグランドで更新する」
がデフォではONになっているので、
これをクエリーそれぞれで外せば、上から順番に計算しているっぽい。
https://i.imgur.com/K2oCmYx.png

メニューの「データ−クエリと接続−すべての更新▼」リボンボタンの中にある
「接続のプロパティ」からアクセス。

紛らわしいが、「データ−プロパティ」からでない。
(こっちは「列幅を調整する」「新しいデータのセルを挿入し、使用されていないセルを削除する」などの設定)

これで「すべての更新」ボタン押し一発(記録されたマクロ一回)で、
Excel関数で追加した計算も含めて、希望どおりシーケンシャルに結果が出た。
0817685
垢版 |
2019/09/21(土) 13:53:58.48
>>816
うるさい、このハゲ!
0820685
垢版 |
2019/09/21(土) 16:21:02.96
>>819
そんなハゲは発言をひかえていただきたい
0821名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 17:10:05.60
質問者は基本的に言葉足らずなので関数を知らないのか敢えてのマクロなのか他人には判らない
回答者が多少気を遣ってアドバイスするとそうなってしまうのは仕方がない
0823765
垢版 |
2019/09/21(土) 19:35:43.66
蛇足だけど、
>>787
「Webから」データ取得して、html自体をテキストで取得する
には、ちょっとコツが必要だった。

「Webから」で素直に表示されるダイアログ画面は、imgur画像の1枚目のような、
・「形式を指定してファイルを開く」
・「元のファイル」 (実質「エンコード」)
のプルダウンメニューは含まれていない。
ところが、

1. 一度URLだけ入力して、PQが自動認識出来るクエリーをそのまま作らせる。
2. このクエリーのステップのうち、一番上の「ソース」を再度「編集」で開くと、1枚目の画像のようなダイアログが現れる。

一応、MSには「最初から選ばせてくれ」との改善要望を出しといた。
0824名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 20:13:22.37
しつけーなPQが想定してる形態じゃねーんだよ
自分でコードかけクソが
0825名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 20:15:13.46
なんでweb上からテキストデータ取って来て解析までしなきゃなんねーんだよアホか
0826名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 20:19:34.99
本当にこういう自分の思う通りじゃないからクソとかいってクレーム入れてくるクソ全員死なねーかな
クソテキストでデータ提供する奴と一緒にはやく死滅してくれ
0827名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 20:24:39.15
クソに対応するためにMSに要望送れるとか神経疑うわ
自分がやべーことに全然気づいてないクソ中のクソ
0828807
垢版 |
2019/09/21(土) 20:27:52.78
>>808
>>811

どの部分を直せばよいでしょうか?
0831名無しさん@そうだ選挙にいこう
垢版 |
2019/09/21(土) 20:52:52.30
出版がどうこうとか完全に頭湧いてるな
出版社に迷惑かける前に病院行ってこい。精神科のあるデカいとこいけよ
0839名無しさん@そうだ選挙にいこう
垢版 |
2019/09/22(日) 10:34:03.66
「みんなのためになる」だろうと思って
PQ話をしたつもりだったんだけどな。
別に既存のVBAや関数と排他ではない、追加機能だし。
0842名無しさん@そうだ選挙にいこう
垢版 |
2019/09/22(日) 10:42:37.61
ああ、萎えたわ。
たかが5chのスレの中で、
マウンティングしてポジション取りしか考えてない
田吾作相手じゃ、やってられんわ。
0847名無しさん@そうだ選挙にいこう
垢版 |
2019/09/22(日) 18:26:01.92
【1 OSの種類】 Windows10
【2 Excelのバージョン 】 Excel 2016
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】 否(VBAが必要そうなら勉強します)

セルに4桁の銘柄コードを入力すると、別のセルに株価が表示できるようにしたいです
http://enjoyjob.net/wp/2018/04/27/excelformula01/
が使えるかと思ったのですが、
このサイトの通りA2に銘柄コード、B2〜D2に数式をいれても、
「この数式には問題があります」というメッセージが出るだけでした
0849名無しさん@そうだ選挙にいこう
垢版 |
2019/09/22(日) 20:04:26.17
>>848
ありがとうございます
まさか例文が間違っていたとは…

B列、C列については、ご指摘の部分の修正で動作しました
肝心のD列はやはり「この数式には問題があります」と出ます
ダブルクォーテーションマークは全てチェックしたつもりですが…
正直、関数の内容はあまり理解出来てないのですが、そもそもB列で所得した情報にsummary-numberが含まれていない気がします
0852847
垢版 |
2019/09/22(日) 20:53:36.28
すいません、自己解決しました
C列のやり方を参考に、株価の現在値の前後の固有の単語から何文字を抜き出す、
というやり方で出来ました
教えて頂いた方、ありがとうございました
0853名無しさん@そうだ選挙にいこう
垢版 |
2019/09/22(日) 23:08:26.90
ヘッダーに日付を入れたいのですが、このページ数の文字を大きくする(20くらい)
にはどう書けばよいでしょうか?

.LeftHeader = "&P/&N"
0858名無しさん@そうだ選挙にいこう
垢版 |
2019/09/23(月) 22:31:25.52
あるブックの「=A1&"aaa"」と入ったセルをvba で別ブックにcopyするとaaaと転記されてしまいます
=A1の部分も反映させるにはどうしたらいいでしょうか?
0860名無しさん@そうだ選挙にいこう
垢版 |
2019/09/24(火) 09:22:26.19
GI列の最終行の値を、下に向かってコピー
A列の最終行と同じ行までコピーするVBAをお願いします。


A GI
***.....**
***.....**
***.....**
***.....
***.....
***.....
***.....
***.....

↓↓↓↓↓↓↓↓

A GI
***.....**
***.....**
***.....**
***.....**
***.....**
***.....**
***.....**
***.....**
0861名無しさん@そうだ選挙にいこう
垢版 |
2019/09/24(火) 18:52:51.39
>>860
GI列の最終行の値を、下に向かってコピー
A列の最終行と同じ行までコピーする
dim cnt
cnt =[a10000].end(xlup).row-[GI10000].end(xlup).row
if cnt>1 then

[GI10000].end(xlup).offset(1).resize(cnt).value = _
[GI10000].end(xlup).value
end if
0863名無しさん@そうだ選挙にいこう
垢版 |
2019/09/24(火) 20:28:01.19
すでにIEのダウンロードダイアログが開いた状態で、VBAで任意のフォルダを選択して保存するにはどうしたらいいでしょうか?
0870名無しさん@そうだ選挙にいこう
垢版 |
2019/09/25(水) 00:30:04.73
>>868
名前をつけて保存のキャプションからウィンドウハンドル?を取得するところまではなんとなくわかったのですが、ファイル名の入力、保存ボタンの押下まで辿り着けません・・
0871名無しさん@そうだ選挙にいこう
垢版 |
2019/09/25(水) 07:16:52.23
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルを右クリックした時に出てくるミニツールバーに、Σや右より表示などのコマンドを
登録する方法は有るのでしょうか?
0873名無しさん@そうだ選挙にいこう
垢版 |
2019/09/25(水) 17:40:09.28
【1 OSの種類         .】 Windows*7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

参照範囲の中に日付と文字列と空欄が混在しており、エラーを吐いてしまいます。
E列とJ列は文字列でG列から日付などが混在しています。最新の日付だけを引っ張りたいです。
試しにG列を全て日付にしてみたら通ったので、文字列と空欄を置き換えなどでごまかす方法があったら教えて頂きたいです。
以下の式まで組みました。
{=MAX(('18〜'!E3:INDIRECT("'18〜'!E"&COUNTA('18〜'!A:A)+1)=C7)*('18〜'!J3:INDIRECT("'18〜'!J"&COUNTA('18〜'!A:A)+1)=H7)*'18〜'!G3:INDIRECT("'18〜'!G"&COUNTA('18〜'!A:A)+1))}
御回答よろしくお願いします。
0875名無しさん@そうだ選挙にいこう
垢版 |
2019/09/25(水) 20:27:20.95
>>870
SendMessageのWM_SETTEXTで文字を送るところまで行った?
その前のFindwindowExで子ハンドル探すあたり?
WM_SETTEXTとかBM_CLICKの正体(実はただの定数)がわからないとか?
0877名無しさん@そうだ選挙にいこう
垢版 |
2019/09/25(水) 22:01:42.77
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

AD列の最終行の1つ下の行から、1233行までを削除するVBAを教えてくださいm(_ _)m
0878名無しさん@そうだ選挙にいこう
垢版 |
2019/09/25(水) 22:36:13.94
>>877
range("ad1233", cells(cells(rows.count,"ad").end(xlup).row+1,"ad")).delete

細かい作業一つ一つ聞くよりマクロの自動登録使う方が手っ取り早いと思うんだが
0879873
垢版 |
2019/09/26(木) 08:01:43.58
>>876
出来ました!ありがとうございました!
0880名無しさん@そうだ選挙にいこう
垢版 |
2019/09/26(木) 12:21:36.18
public Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal lpText As String,ByVal uType As Long) As Long

'OKボタンを保有するフラグ
Public Const MB_OK = &H0

'最前面フラグ
Public Const MB_TOPMOST = &H40000

'呼び出し
Public Sub TestTopMostMsgBox()

Dim lpText As String
Dim lpCaption As String

lpText = "テスト"

MessageBox 0, lpText, lpCaption, MB_OK Or MB_TOPMOST

End Sub

これを実行すると必ずexcelが落ちるのですが何がいけないのでしょうか・・
0881名無しさん@そうだ選挙にいこう
垢版 |
2019/09/26(木) 12:42:50.45
>>880

public Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal lpText As String,ByVal uType As Long) As Long

Public Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" ( _
ByVal hWnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal uType As Long) As Long
0886名無しさん@そうだ選挙にいこう
垢版 |
2019/09/26(木) 23:35:54.18
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

A1に日本って打ったらB1に東京と表示され
同じくA1にアメリカと入力したらB1にワシントン
ロシアならモスクワ、何も入力しない場合は空欄が
表示されるようにしたいんだけどやり方を教えて下さい
0889名無しさん@そうだ選挙にいこう
垢版 |
2019/09/27(金) 00:07:07.59
>>886
B1⇒ =IFERROR(INDEX(E:E,MATCH(A1,D:D,0)),"")
D1⇒ 日本
E1⇒ 東京
D2⇒ アメリカ
E2⇒ ワシントン
D3⇒ ロシア
E3⇒ モスクワ
0891886
垢版 |
2019/09/27(金) 00:47:06.84
ありがとうございます!
0893名無しさん@そうだ選挙にいこう
垢版 |
2019/09/27(金) 02:37:22.66
>>892
このハゲ!
一つじゃなくてもベストな方法は一つだ
0894名無しさん@そうだ選挙にいこう
垢版 |
2019/09/27(金) 04:27:11.38
絶対参照と複合参照、相対参照だったかな?
このあたりがわからん。
mosの資格をとりたい
0897名無しさん@そうだ選挙にいこう
垢版 |
2019/09/27(金) 14:57:51.39
>>894
出るものって結構決まってるから模試やればいける
やらないと無理かも
ただ本番の方が日本語が拙い時があって悩むw
問題数は模試のが多いな
0899名無しさん@そうだ選挙にいこう
垢版 |
2019/09/27(金) 23:09:48.44
>>894
絶対参照と相対参照は、超簡単。
まずはそれを理解して、複合参照を理解すれば大丈夫。
複合参照は実務だと、条件付き書式でよく使う。
0905名無しさん@そうだ選挙にいこう
垢版 |
2019/09/29(日) 14:31:22.49
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel1601192920300

先頭、末尾に移動するのにCtrl + Home、Ctrl + Endはわかっているのですが
ツールバーでありませんか?
0906名無しさん@そうだ選挙にいこう
垢版 |
2019/09/29(日) 15:40:04.53
sub ○○() は本来
(Public) sub ○○() が省略されてるもの
で合っていますか?

Cells(1, 1).Value = が Cells(1, 1) = でいけるのと同じで
0907名無しさん@そうだ選挙にいこう
垢版 |
2019/09/29(日) 15:47:04.66
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

A1に
S15がAならB A以外は空欄

Bは別シートの別シートC12

と表示するにはどうしたらいいですか?
0913名無しさん@そうだ選挙にいこう
垢版 |
2019/09/29(日) 16:50:44.95
グラフをコピーして2個作って上下に並べればいいよ
片方の横メモリラベルは消せばいい
0914名無しさん@そうだ選挙にいこう
垢版 |
2019/09/29(日) 17:11:55.61
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

A1
=IF(S12="日","",'計画 '!C12)
だと

で別シート'計画 '!C12が空欄の場合
A1が0になってしまいます

で別シート'計画 '!C12が空欄の場合
A1が空欄になるにはどのようにすれば良いですか?
0919名無しさん@そうだ選挙にいこう
垢版 |
2019/10/01(火) 06:15:16.28
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

・あるセルに数値を書き込む
・数値入力時点での日付、時刻を隣接セルに書く

というようなことをやっていて、日時入力の手間を減らしたい
イメージを作ってみたがこんな感じ
https://i.imgur.com/2HVxrLE.jpg
「ctrl+;」「ctrl+:」でもいいんだけどかなり頻繁に入力するからなるべく手間を減らしたいんだ
こういうのはVBAでやらなきゃ無理かな?
now関数とかは入力するたび変わっていっちゃうからうまい具合にやる方法が思いつかない
0920名無しさん@そうだ選挙にいこう
垢版 |
2019/10/01(火) 06:46:07.76
VBA使わないと無理です
0925名無しさん@そうだ選挙にいこう
垢版 |
2019/10/02(水) 19:02:50.04
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

>>923の状態は、むしろどうやって作るのでしょうか?
0930925
垢版 |
2019/10/02(水) 20:13:35.05
>>926
ありがとうございました。
文字化けですか。
0931名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 04:42:21.67
最近よく見るけど、¥記号、〜記号、ハイフン、半角スペースなど一部の記号だけがなぜかユニコード文字になってるWEBサイトやデータがけっこうあって、コピペやエクスポートすると必ず文字化けするんだよなあ
スマホやタブレットからデータ入力すると、日本語入力エンジンのデフォルトの優先順位の関係でユニコードが選ばれてしまうらしいんだけど、修正の手間が増えて地味に困ってる
0932名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 14:04:37.95
G列の2行目以降でセルの値が1000であれば、その行を行ごと削除したくて
これを試したのですが、エラーになります

Columns("7").AutoFilter Field:=7, Criteria1:="=1000"
Range(Range("G2"), Range("G" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Selection.AutoFilter


それと同じようにA列の2行目以降で"59″であれば行を削除するためにこれをつかいたいのですが
1行目がなくなり、AutoFilterが解除されないです。

Columns(1).AutoFilter Field:=1, Criteria1:="=59"
Range(Range("A2"), Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Selection.

正しい書き方をおしえてください
0934名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 19:19:26.40
>>932
1行目からおかしいね
0935名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 19:40:50.85
>>932
オートフィルターに頼らない方が良い
あれは微妙に挙動がややこしい

Sub Macro1()
For i = Cells(Rows.Count, 7).End(xlUp).Row To 2 Step -1
If Cells(i, 7).Value = 1000 Then
Rows(i & ":" & i).Delete Shift:=xlUp
End If
Next
End Sub
0938名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 21:13:57.93
遅いなら配列に入れるとか。

Sub Macro1()
 tmp = Range("G1:G" & Cells(Rows.Count, 7).End(xlUp).Row).Value
 For i = Cells(Rows.Count, 7).End(xlUp).Row To 2 Step -1
  If tmp(i, 1) = 1000 Then
   Rows(i).Delete
  End If
 Next
End Sub
0943名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 22:40:18.33
マクロって結果をシートに代入させると遅くなるのかな
1列のみの50行の範囲、検索数18個(for&#12316;)の条件で
合えば、セルに色を付ける作業でも目でわかる速さでポツン、ポツンって色が付く
0945名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 22:51:58.18
色が付いていく様子が見えると言うことは表示切ってないだろうから、
screenupdatingを切れば50行程度ならマシになるんじゃね
0946名無しさん@そうだ選挙にいこう
垢版 |
2019/10/03(木) 23:11:48.41
>>945
画面の切り替えはないから速度変化はないと思うけどscreenupdatingは別のマクロで使えそうなので感謝
0950名無しさん@そうだ選挙にいこう
垢版 |
2019/10/04(金) 08:15:58.98
>>948
Function 違うのがある()
  違うのがある = False
  For Each c In Range("A1:E10")
    If c.Value <> "" Then x = c.Value: Exit For
  Next
  For Each c In Range("A1:E10")
    If c.Value <> "" And c.Value <> x Then 違うのがある = True: Exit For
  Next
End Function
0952名無しさん@そうだ選挙にいこう
垢版 |
2019/10/05(土) 02:29:49.48
更新プログラムの為にサインインしたらメニューバーに自分の名前が出るようになったのでサインアウトしようとしたら「カスタマイズしたものが失われます」と警告が
通信を切って再起動しても変わらず悩んだ末にサインアウト!
結果は特にカスタマイズしたもので消えたものはなくて一安心だがカスタマイズしたものって何だったの?
0953名無しさん@そうだ選挙にいこう
垢版 |
2019/10/05(土) 11:09:19.77
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2017
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

出力したエクセルデータを、特定のフォーマットに整理する作業を簡単にしようとしています
ひとまずマクロで自動記録したものを加工しながらどうにか自動化したのですが
例えばG列をC列の前に切り取って貼り付けすると旧C列がD列となりますよね?
これを繰り返すと少しずつ列がズレるためか、思ったような動きにならずかなり手間取りました
「次にB列に行を挿入したいがC列と記録したほうが正しく動く」ような状態があり…
マクロ記録において、こういうやり方は正しいですか?
0958名無しさん@そうだ選挙にいこう
垢版 |
2019/10/05(土) 15:02:44.06
Hの列だけで空欄のセルがある場合には一つ上のセルをコピーしたいのですが
↓だと、A列ではない他の列の最終行まで続いているのと、すべてのセルにも
同じコピーをしてしまいます。

For r = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
On Error Resume Next
With range("H2:H" & r)
.SpecialCells(xlCellTypeBlanks).Formula = "=R[-1]C"
.Value = .Value
End With
Next r
Err.Clear
0960名無しさん@そうだ選挙にいこう
垢版 |
2019/10/05(土) 16:28:36.07
>>954
一応アリなんですね
初めて使ったので試行錯誤でしたが…確かに後ろから処理してなるべくずれないようにしたほうがすっきりしそうです

>>955
新しいシートに作れたらレベルが1つ上がりそうですね
実は不要な列も多いので、その方法は今後試してみたいです
0964名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 03:59:48.46
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

競馬のデータをエクセルに入れたのですが競走馬の名前と競馬場や距離を入れると
各着順のカウントをしたいのですがVLOOKUPとCOUNTIFSをどう組み合わせればいいのか
教えてください。

http://iup.2ch-library.com/i/i2017802-1570301315.jpg
0966名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 04:32:31.10
>>962
Sub Macro1()
  Dim s As String
  For r = 1 To Cells(Rows.Count, "J").End(xlUp).Row
    s = Cells(r, "J")
    s2 = ""
    For i = 1 To Len(s)
      c = Mid(s, i, 1)
      Select Case c
      Case "0" To "9", "A" To "Z", "a" To "z"
         s2 = s2 & c
      End Select
    Next
    Cells(r, "J") = s2
  Next
End Sub
0971名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 15:23:57.93
>>969
消せない
>>970
見れない
0974名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 16:23:18.49
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

INDEX+MATCHでB328の中にN2〜N27の文字列が含まれてるとO2〜27の値を表示させるワイルドカードを使ったのですが、完全一致しか反映されませんでした。
どの部分が原因でしょうか。

=INDEX($O$2:$O$27,MATCH("*"&B32&"*",$N$2:$N$27,0))
0977名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 18:26:04.53
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

質問です。
AシートのA列に1 1 1 2 2 2 3 3 3
とあって
BシートのB列に1 2 3という風に
AシートのA列に入力した同じデータが
BシートのB列にまとまるにはどういう関数を使えばいいでしょうか?

ちなみに数字はランダムです。

説明が下手で申し訳ございません。
ご教示くださいますようよろしくお願いします。
0978名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 19:15:16.22
VBAの処理と、ワークシート関数の処理はあまり絡ませない方が良いのでしょうか?
例えば、ものすごく簡単に言うと、

range A1 =10
range A2 =20
range A4 = range A2 + range A3

みたいなプログラムです。
(range A3のセルには、sum関数A1+A2が入ってる)

実際は正しい値が入りますが、ちょっと気になったので…
0981名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 21:47:05.89
974です。
=INDEX($O$2:$O$27,MATCH("*"&B32&"*",$N$2:$N$27,0))

INDEX+MATCHだと、
=INDEX($O$2:$O$27,MATCH(B32,"*"&N2:N27&"*",0))でした。
B列のなかにN列のものがふくまれていた場合にO列のコードを反映したいのですがうまくできません。どのようにしたらうまくいくでしょうか。
0982名無しさん@そうだ選挙にいこう
垢版 |
2019/10/06(日) 22:30:21.83
974、981です。

こんな形ですが、ワイルドカードで特定の文字列を含んだ数字を表示させることはできそうなのですが、もっと効率のよい関数はあると思うんですが、難しいです。
=IF(COUNTIF(B32,"*"&$N$14&"*"),$O$14,IF(COUNTIF(B32,"*"&$N$15&"*"),$O$15,""))・・・・

うまく表現できなくてすみません。
0984名無しさん@そうだ選挙にいこう
垢版 |
2019/10/07(月) 12:49:19.86
range("b5").End(xldown).offset(1,0).select

これはレンジからoffsetまではオブジェクトで、Endとoffsetはレンジのプロパティっていう理解でいいですか?
0985名無しさん@そうだ選挙にいこう
垢版 |
2019/10/07(月) 12:57:22.30
書いてあるのがプロパティかオブジェクトかという話なら最後のselect以外は全部プロパティ
戻り値がプロパティかオブジェクトかという話ならrangeもendもoffsetも全部オブジェクト
0989名無しさん@そうだ選挙にいこう
垢版 |
2019/10/07(月) 20:58:02.42
>>988
ありがとうございます。
.selectとか.deleteみたいに文章の最後に来るのがメソッドでドットで連結していくのがプロパティっ理解でした。。。
0990名無しさん@そうだ選挙にいこう
垢版 |
2019/10/07(月) 21:00:02.69
>>980
ありがとうございました。
0993名無しさん@そうだ選挙にいこう
垢版 |
2019/10/08(火) 12:46:53.33
>>992
今出先なので思い出せる範囲ですが

dim i
for i =1 to 20
ieのチェックボックスをクリックするコード(チェックボックスのID「"×××"& i-1」)

ie操作をしており、IDの末尾が0.1.2.〜と順に増えていくチェックボックスを順にクリックしていく流れです。
0998名無しさん@そうだ選挙にいこう
垢版 |
2019/10/08(火) 17:23:58.68
>>996
このハゲ
0999名無しさん@そうだ選挙にいこう
垢版 |
2019/10/08(火) 17:54:23.59
           |
            |  彡⌒ミ
           \ (´・ω・`)また髪の話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 73日 0時間 12分 38秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況