X

Excel総合相談所 137

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@そうだ選挙にいこう
垢版 |
2019/10/08(火) 20:06:19.40
【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
2019/10/10(木) 17:42:45.28
>>37
exit forをやめてみる
2019/10/10(木) 18:11:01.25
anchor.Click の位置に、debug.print anchor.ID を入れる
それで問題無ければ、 Click がうまくいかなかっただけと考え、Sleep とかを適所に差込む
使い方は調べて

でも、きれいに一つおきになったのは謎
チェックボックスなのにTagName("select")なのもあやしい
というより、セレクトボックスに連動してチェック入ってるだけでは?
そうなると、htmlの構造を調べろという事で、そこから先はスレチ
40名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 18:40:03.32
ループ内でclickしてるのも終わってるな
41名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 18:40:31.85
バカほどしつけーんだよな
頑張ってくれや
2019/10/10(木) 19:41:27.62
いちいちあげんな
ゴミ同士まとめて死ね
2019/10/10(木) 19:44:52.93
>>42
アンタこのスレに無理にとどまっている必要無いんだよ?
2019/10/10(木) 19:48:25.85
>>37
じゃあIDが本当に合ってるか
2019/10/10(木) 20:16:27.32
Excelって奥深いなぁ。素人だけどそう思うわ。
2019/10/10(木) 21:21:02.99
Excelが、というよりVBAが使えるオフィス製品全部ね。
一見、オマケで付いてるように見えて、実はメイン部分より凄いっていう。
2019/10/10(木) 21:34:39.09
用途が違うから凄さ比較はおかしい
48名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 22:00:20.60
Sub test()
With Workbooks("book1.xlsx").Worksheets("sheet1")
.Activate
.Range("A1").Select
.PasteSpecial Format:="HTML"
End With
End Sub

別のブックにHTMLファイルをペーストするコードですが、他にシンプルな書き方があれば教えてくだい
2019/10/10(木) 22:02:43.45
↓こういう、エクセルを説明する時の定番の表ってあるじゃないですか。

りんご  1個
みかん  2個
もも   12個
合計   15個

でも俺的には、↓こういうのをお勧めしたい。

ケナーパーカー    42点
ナーフフェンシング  21点
ナーフゴルフ      22点
合計         -6000点
2019/10/10(木) 22:06:46.96
>>48
コピーもしないでどうやって貼り付けるのかと思ったわ。
2019/10/10(木) 22:08:42.50
Sub スコーン()
 Workbooks("book1.xlsx").Worksheets("sheet1").Range("A1")..PasteSpecial Format:="HTML"
End Sub
52名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 22:08:50.77
>>50
すみません、コピーは手動なので省いています
2019/10/10(木) 22:23:38.82
sub テスト()

dim i as integer

i=1

range("b3").select
for i = 1 to 20
activecell.value = i
i=i+1
activecell.offset(1.0).select
next
End sub

すいません、これを実行したら1.3.5.7.11.13.15.17.19といった奇数しか出ません。1から20までようにするにはどうしたらいいですか?よろしくお願いします。
2019/10/10(木) 22:27:35.63
i=i+1いらなくね?
55名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 22:39:07.95
>>51
動作確認しましたが、1004エラーになりました
2019/10/10(木) 22:41:27.94
>>55
..ってそのまま打ったんじゃあるまいな
57名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 22:42:17.21
>>56
構文エラーになるのでわかります
2019/10/10(木) 22:51:40.57
LOOKUPでリストから情報を抽出、さらに数式
を多用しているシートをVBAで連続印刷したい
のですが、少し計算処理が遅い感じになって
ます。
数式を多用することで、VBAの連続印刷より計
算が遅れる現象ってあるのでしょうか。
2019/10/10(木) 22:53:17.32
>>57
では何もコピーしてないんじゃないのか
60名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 22:58:36.94
>>59
マクロ実行前に手動でコピーしてます
同じやり方で>>48は成功してます
もしかしたら、マクロ上でコピーするのであれば>>51は成功するのかな
2019/10/10(木) 23:08:23.64
>>60
Workbooks("book1.xlsx").Worksheets("sheet1").PasteSpecial Format:="HTML"
62名無しさん@そうだ選挙にいこう
垢版 |
2019/10/10(木) 23:23:32.96
>>61
ありがとうございます
book1のペーストの位置がアクティブシートのセル位置なので、アクティブシートのセルを任意のセルにセレクトするコードは必要ですね
2019/10/10(木) 23:31:04.57
違う書き方を探してたのか、最初の質問見てなかったわ
2019/10/11(金) 13:07:37.31
Workbooks("book1.xlsx").Sheets(1).Range("A1:A1").PasteSpecial "HTML"

sheet1がアクティブにならないのと、事前にHTMLをコピーしとかないと1004エラーになるよ
sheet1が左端にない場合は番号を変える
65名無しさん@そうだ選挙にいこう
垢版 |
2019/10/11(金) 14:57:30.71
「移動」と「HTML貼り付け」がしたいならこんな感じじゃないの

'Move to the target book-sheet-cell
Application.Goto Workbooks("book1.xlsx").Worksheets("Sheet1").Range("A1")
'Paste clipboard contents
ActiveSheet.PasteSpecial Format:="HTML"

RangeオブジェクトのPatesSpecialには引数Formatは無いから、Worksheetオブジェクトの方を使わないと駄目
2019/10/11(金) 19:15:39.54
>>65
話はその次の部分だぞ
2019/10/11(金) 19:18:43.79
小文字を大文字にしたいのですが↓の間違えている個所を教えてください<(_ _)>

i = Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:A" & i).Value = Application.UCase(Range("A2:A" & i))
2019/10/11(金) 19:41:31.73
>>67
Application.UCase(Range("A2:A" & i))
6967
垢版 |
2019/10/11(金) 20:05:33.63
>>67

ありがとうございます<(_ _)>
70名無しさん@そうだ選挙にいこう
垢版 |
2019/10/11(金) 20:19:33.90
>>67
ucaseはvba関数だからapplicationいらなくて、
配列は処理できないから個々のセルごとに処理しないと駄目

dim rng as range, i as long
i = cells(rows.count,1).end (xlup).row
for each rng in range("A2:A" & i)
  rng.value = ucase(rng.value)
next
2019/10/11(金) 20:25:22.65
Cells(1,"A")と書かず、判りにくいCells(1,1)と書くのはなぜ?
ネットの記述とか見ててもCells(1,"A")と書いてるの見たこと無い
72名無しさん@そうだ選挙にいこう
垢版 |
2019/10/11(金) 20:30:54.73
一番の理由は速度が出るからだろうね
特に大量のセルが絡むループ処理内で文字列使うと遅くなる
1つとかなら好みでいいんじゃないの。それならRange使えばってなるけど
2019/10/11(金) 20:51:54.15
>>71
慣れ
基本cellsはループ内で使うから文字列で書く理由がない
速度は気にしたことない

>>72
>1つとかなら好みでいいんじゃないの。それならRange使えばってなるけど
には全面的に同意
何らかの理由(テンプレートの動的生成みたいな)ものならセル範囲をrabgeで指定することはある
2019/10/11(金) 20:58:08.60
>>71
列番号で処理したい時にCellsが使われることが多いから
75名無しさん@そうだ選挙にいこう
垢版 |
2019/10/12(土) 05:56:18.22
条件付き書式を書き込んだ行ををコピ-挿入すると同じルールが行毎にがどんどん増えていって困ってます。
同じルールで適用先の範囲が増えていくように設定するにはどうやったらいいんでしょうか?
2019/10/12(土) 07:36:56.28
>>75
列を挿入してから形式を選択した貼り付けじゃだめ?
77名無しさん@そうだ選挙にいこう
垢版 |
2019/10/12(土) 10:39:47.97
>>76
 ありがとうございます。
 マクロ編集でなおりました。
 どういう内容なのか忘れましたが、
  Application.CutCopyMode = False
Selection.AutoFill Destination:=Range(K11:K12), Type:=xlFillDefault
Range("K11:K12").Select
2019/10/12(土) 20:12:51.49
関数の質問はここでいいのでしょうか?
excel2013、windows7使用しております。
文字列の比較での質問です。
比較元の左端から1文字ずつ比較をし、最も文字数一致が
多かった比較先の行の別内容を表示させたいのですが、どうすればできるのでしょうか。
たとえば、
比較元「あいうえお」
比較先(固定リスト) data1「あいう」,data2「あいうえお」,data3「えお」
結果「data2」
と、極力計算用の列を追加させずに1つの関数で計算させたいです。
(比較したい元データが1200件程度あるので)
宜しくお願いいたします。
7978
垢版 |
2019/10/12(土) 20:16:05.25
若干誤解を招く部分がありました。
1文字ずつ比較したいので、
比較元「あいうえお」
比較先のdata2を「abおえcあうdいe」とした場合でも、一致した文字数を"5"と
返すような計算をしたいです。
2019/10/12(土) 20:39:29.32
比較元の文字数は?
8178
垢版 |
2019/10/12(土) 20:47:47.63
>>80
日本語で20文字〜45文字程度とバラバラです。
補足ですが、比較先データのリストも1200件程度あります。
2019/10/12(土) 21:35:20.64
>>81
VBA使わないと計算用の列増えそう
2019/10/12(土) 21:43:49.79
比較元「あいうえお」比較先「あああ」の一致数は1?3?
8478
垢版 |
2019/10/12(土) 22:05:50.76
>>83
3です。
計算用の列が増えても、最終的に無事表示することができれば大丈夫です、、、
現時点では、一致文字数を表示する関数自体はsumproduct,midで実現できており、その計算列に対しindex,match,maxで内容を表示することができていますが、それだと比較元1件ごとに列が必要となってしまうので、、、
(教えてもらった方法なので今いち仕組みがよくわかっていませんが、、、)
2019/10/12(土) 22:19:58.61
>>84
比較元1文字ごとではなく1件ごと?
2019/10/12(土) 22:20:58.90
比較元は1つだと思ってたが違うのか?
2019/10/12(土) 22:24:45.31
>>78
VBAで関数を作れば1つの関数でできる
VBAなしでは無理
8878
垢版 |
2019/10/12(土) 22:42:12.08
説明がへたくそでごめんなさい。
比較したいデータが1000件以上あり、1件ずつかつそれぞれ1文字ごとに比較先リストと照らし合わせ、そのリストの中で一致文字数が最も多かったデータ行を返したい、という意味でした。
8978
垢版 |
2019/10/12(土) 22:57:21.60
具体的に説明させていただきます。
相手会社名、摘要、科目などがデータとしてあります。
この時点では「果物費用」などとざっくりとしか分かれていないので、これらの情報を元に「A商店 バナナ費用」「B商店 りんご費用」のように細かく分けていきたいんです。。。

前年度データが比較先リストです。これについては既にバナナ費用等と細かく分かれています。(前任者が目視で確認しながら分けていったものです)

そして、今年度データが比較元です。まだバナナ費用等と分かれていないので、どうにか目視ではなく関数で分けたいなと思い質問いたしました。

相手先や摘要は複数名が入力しているデータのため統一性がありません。同じA商店でも、エー商店や商店エイとなっていたりしています。
そのため、前任者は目視でやっていたようです。
2019/10/12(土) 23:52:59.67
どちらにしろVBA使わなきゃ作業列が増える気がする
それに先にやるべきは入力を統一させること…
2019/10/14(月) 03:49:25.60
MOSのような説明書的なものではなく実務でのExcelの使い方の要領を知りたいんですが、みんな独学なんですか?
いい講座があれば知りたい…
2019/10/14(月) 06:35:40.77
実務自体が千差万別だからこれと言った講座はない
強いて言えば入社後の社内研修とかがこれに当たるかね
おとなしくMOS受けとくのが良い
2019/10/14(月) 08:01:34.63
MOSってマニュアルレベルを精度高く覚えることなんじゃないの?
応用実践の力つくの?
2019/10/14(月) 08:04:35.38
365だからMOSの勉強できないんだが
2019/10/14(月) 08:49:26.12
>応用実践の力つくの?
付かない、というかそんなもん実践でしか付かんよ
サイトでも本でもデータが整っている前提だけど、基本的に現場なんてデータはバラバラの状態で存在する
それを修正する所から始める
2019/10/14(月) 10:52:48.49
MOS受かれば職場で重宝されるよ
「ググるよりXXさんに聞く方が早くて」
97名無しさん@そうだ選挙にいこう
垢版 |
2019/10/14(月) 11:21:24.74
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

語群がSheet1のA列にあったとします。
Sheet2のA列に少し長めのテキストが並んでが入っていたとして、
語群のキーワードがいくつ含まれるかSheet2のB列にカウント表示させたいです。
どうすればできるでしょうか?
2019/10/14(月) 11:40:39.31
>>97
こんな感じかねぇ
https://i.imgur.com/NjGHNmZ.png

B2=COUNTIF(C2:E2,TRUE)
C2=IFERROR(FIND(C$1,$A2),0)>0

Excelはどれかの文字列が入っているって処理はやや苦手
2019/10/14(月) 13:21:24.56
>>91
講座や解説書ではこういうことができるんだなっていう理解はできるかもしれないが、実用技術を身に付けるのは難しい
やりたい処理をひたすら調べて実際に動かしてみるというのを積み重ねてるうちに身に付いてる
10097
垢版 |
2019/10/14(月) 14:12:06.21
>>98
条件を元にお願いします。
2019/10/14(月) 14:53:23.41
>>100
>語群がSheet1のA列にあったとします。
これを行列入れ替えでsheet2の1行目に貼り付けるだけだよ

その貼り付けが嫌というならvbaぐらいしか思い浮かばない
2019/10/14(月) 14:55:32.94
>>100
Sheet1のリストの数だけ作業列がいると思う
だからリストを別シートにせずA列に調べる対象のテキスト、1行目にキーワードを並べる形式にした方がいいと思う
2019/10/14(月) 16:45:38.56
>>97
Sheet2!B1=SUMPRODUCT(--NOT(ISERROR(FIND(Sheet1!A1:INDEX(Sheet1!A:A,COUNTA(Sheet1!A:A)),Sheet2!A1))))
2019/10/14(月) 16:49:59.36
--NOTって何だ・・・
2019/10/14(月) 18:15:23.83
>>93
実戦ではまず使わないだろうってことを知ることが出来るのがMOS
私も独学だけどまずやることがあってそれをどうやったら実現できるかググって少しずつ出来ることが増えてく感じ
うちの職場には関数使えるのが1人だけいて初めその人に教わって
それからVBA使いはじめてそこからは独学
でももともとプログラマだったから全くの初心者からという感じではない
2019/10/14(月) 18:32:46.20
>>105
自分語りはブログあるいはチラシの裏に
2019/10/14(月) 19:10:51.83
独学ですか?っていう質問に答えてるだけだと思うんだが
108名無しさん@そうだ選挙にいこう
垢版 |
2019/10/14(月) 19:27:51.94
【1 OSの種類         .】 Mac 10.14.6
【2 Excelのバージョン   】 Excel for Mac 16.16.14
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

質問失礼します。

プルダウンリストにした元となる項目の変更方法。(名称など)

仕事で使っているのですが、シートをテーブルにして、プルダウンリストはシートの指定範囲を名前を定義して使っています。指定範囲には商材リストの商材名を入れてあるので、リストから選択をすると横に売価や原価が出るような形にしてあります。

プルダウンリストの元データとなる指定範囲の名称(商材名)を変えると、プルダウンで選択をしたセルでは変更が反映されません。元データの変更をプルダウン側にも反映させたいのです。

例)
変更前
リスト:魚 プルダウン:魚
※プルダウン選択時はリストと名称が一致しているので問題なし

変更後
リスト:魚A プルダウン:魚
※リストに修正を加えてもプルダウンで選択したものは反映されず、一致するデータがないという事なのかリストに紐付けた引用データなどは#N/Aとエラーが出る

このような場合、リストに修正を加えたものをプルダウンの選択にも反映させるにはどのようにすれば良いのでしょうか?
※うまく説明ができずにすみません。

ググってみてもリストの追加、削除に関しては生地が色々とあったのですが、リストそのものを編集に対する反映のさせ方が見つけられませんでした。

アドバイスよろしくお願いします。
2019/10/14(月) 19:46:18.16
>>108
通し番号でもつけておくしか無いねぇ
2019/10/14(月) 20:09:44.56
>>108
リストを変えたら手動で選択し直す必要があるよ
自動で変えたかったらVBA使うしかない
111108
垢版 |
2019/10/14(月) 20:29:52.04
>>109-110

レスありがとうございます。
アドバイスを参考に頑張ってみます。
2019/10/14(月) 23:57:03.34
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Office365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

画像のように一つのセルに表の数字を表示さたいです。

重複している数字を消して、昇順で並べ替え、数字の間に,を入れるということが可能でしょうか?

https://i.imgur.com/cqPIdCZ.jpg
113名無しさん@そうだ選挙にいこう
垢版 |
2019/10/15(火) 03:14:45.25
数字は1から9まででいいんですか?
114名無しさん@そうだ選挙にいこう
垢版 |
2019/10/15(火) 04:02:13.08
あ VBAつかえるんじゃん
別シートにコピーしてシート上で重複削除ソートして整形するのをマクロで処理するか
VBScriptか.NETのArrayListのソートでやるか

てっきり数式限定のパズル問題かと思ったよw
2019/10/15(火) 11:57:54.80
>>112
@ VBA

A Office インサイダー
=TEXTJOIN(",",TRUE,SORT(UNIQUE(A1:A9)))
2019/10/15(火) 12:21:32.87
>>112
なんとか数式だけで頑張ったけど無理だった
=SMALL(A1:A9,1)&REPT(","&SMALL(A1:A9,1)+1,ROW(A9)-1)
+1の所をなんとか1ずつ増やせられればいけそうだけどわかんないです
2019/10/15(火) 14:01:04.99
夏の悲劇
2019/10/15(火) 20:48:45.46
>>112
A1〜A9を連想配列に入れる(重複削除)→並べ替え→デリミタに,を指定して結合
2019/10/15(火) 23:42:00.94
>>113-118
皆様お力添えありがとうございます。
参考にして作成してみます。
2019/10/15(火) 23:54:17.76
>>119
出来たら教えてね
2019/10/16(水) 19:20:57.14
エクセルで作ったグラフを、拡張メタファイルなどでワードに貼り付けると結構綺麗なんですが、
同じくらいの綺麗さでエクセルにコピーする方法ありませんか?
エクセルに貼り付けると、何故だか若干ボヤけてしまいます。
2019/10/16(水) 19:50:30.26
貼り付ける時に、図としてとか、リンクとか、画像としてとか、いくつか選択肢があったと思うけど、
適当に選んでれば、そのうち正解にたどり着くのでは?
2019/10/16(水) 19:52:59.81
>何故だか若干ボヤけてしまいます。
眼鏡を替えたらいいと思うよ
2019/10/16(水) 20:23:03.82
>>121
画像サイズが縮小が拡大されてるとか
2019/10/16(水) 20:23:28.80
縮小が拡大→縮小か拡大
2019/10/16(水) 21:56:30.37
>>121
図として貼り付けるとダウンコンされて貼り付けられるから画質落ちるよ
2019/10/16(水) 22:02:03.27
メニューから貼り付けたら綺麗だったはず
2019/10/16(水) 22:41:16.03
>>127
挿入→図だとダウンコンされる
ドラッグアンドドロップだとそのまま貼り付けられるよ
2019/10/16(水) 22:41:39.81
ドラッグアンドドロップだったか忘れたけど
2019/10/17(木) 00:30:39.79
すいません教えてください 家のPCで使用しています

Office365にバージョンアップ?する前のexcel使用しています
ネット上でやるけど月額払ってない奴です

これでfxボタン押してVlookupを選ぶと関数の引用のダイアログボックスが出ません

会社のPCはエクセル2016で上記のダイアログボックスが出ます

家で仕事しようとしましたがexcel2002しかなくこれでfxボタンを押すと何かをインストールしますでフリーズし止まります

仕方なくOfficeでネットのexcel使ったんですがfxボタンの後、関数を選んでも関数の引用ダイアログボックス出ません

どうしたら表示されますか?
2019/10/17(木) 01:12:18.45
>>128
いや、形式を選択して貼り付けで
2019/10/17(木) 01:16:25.31
>>130
オンライン版Excelは機能限定版
2019/10/17(木) 08:46:53.80
>>132 何度もすいません
だとすると月々1500円?払うOffice365でも昨日限定ですか?
関数の引用ダイアログボックス使うにはオンラインではなくソフトの方を買わないとダメですか?

いかんせんソフト一括払いは高いんでできたらOffice365で月払いにしたいです
2019/10/17(木) 09:06:05.56
>>133
365なら全機能が使える
月に一度はネットに接続して再認証しないと使えなくなるだけ
2019/10/17(木) 13:11:58.22
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

共有ファイルをExcelonlineで図形挿入し四角を書いて長方形にしたりしたいんだけど
今までできてたはずなのに今日やってみるとできなくなってるんですけど
なぜなんだろう
文字の入力や図形の移動はできます
2019/10/17(木) 18:56:40.05
>>135
出来た時からできなくなった時の間にした操作は?
2019/10/17(木) 20:19:34.62
なあ。Excel365 バージョン 1909(ビルド 12026.20334)に上がったら
Range("A1").Value = "令和1年10月17日"
の結果が
"令和1年10月17日"
じゃなくて
2019/10/17(Value)
"令和1年10月17日"(Text)
になっちゃうようになっちゃったんだが。
これって仕様なの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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