X



Excel総合相談所 138
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@そうだ選挙にいこう
垢版 |
2020/01/30(木) 00:40:30.43
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

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

前スレ
Excel総合相談所
https://find.5ch.net/search?q=excel
Excel総合相談所 137
https://mevius.5ch.net/test/read.cgi/bsoft/1570532779/

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
0003名無しさん@そうだ選挙にいこう
垢版 |
2020/01/30(木) 13:34:21.88
>>1乙です

前スレ >>995
>次のような表があり、

>東京 拉麺 250円
>千葉 拉麺 400円
>大阪 そば 250円
>埼玉 そば 250円
>滋賀 そば 350円
>佐賀 饂飩 800円
>佐賀 饂飩 1000円

>そばを売ってる中で最安な県(一番上の1県だけでOK)の表示
>そばを売ってる中で最安なのは何件あるかの数値

>を関数で表したいです。
>「表の中で値段が一番安い県」ですと
>=INDEX(A1:C6,MATCH(MIN(B1:B6),B1:B6,0),1)
>で表せたのですが、さらに「B列がそばの中で」など、
>表の中から抽出する条件の中での最安値を出すにはどのような表記になるでしょうか?

=MIN(IF(B1:B7="そば",C1:C7))
行列式なのでCtrl+Shift+Enter すること
0004名無しさん@そうだ選挙にいこう
垢版 |
2020/01/30(木) 13:45:15.54
おっちゃん難しいこたぁわかんねぇけんど、
そばよりもおいしいうどんを売ったほうがえぇと思うよ。
0005前スレ995
垢版 |
2020/01/30(木) 19:30:13.63
前スレ995です。
>>3
参考にさせていただき、目的の数式完成しました。
ありがとうございます。
「=MIN(IF(B1:B7="そば",C1:C7))」 の中身の
「=IF(B1:B7="そば",C1:C7)」はFALSEを返してくるのに、
=MIN()の中では「B1〜B7でBがそばの行のCの値(複数?)」というデータを
ちゃんと持ってるんですね。不思議。

前スレの>>997さんの作業列DをつくってINDEX(〜MATCHもいろいろ応用が利いたので助かりました。
ありがとうございました。
0006名無しさん@そうだ選挙にいこう
垢版 |
2020/01/31(金) 10:36:37.95
単純そうな質問してもいいですか?

あるセルに任意の文字列を入力された日にちを別セルに表示させたい場合は
どのようにしたらいいでしょうか?

例えばA1に「りんご」と1/20に入力したら、B4に1/20と表示されるような…
0007名無しさん@そうだ選挙にいこう
垢版 |
2020/01/31(金) 10:58:08.61
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すいません、質問があります。

現在エクセルを使って給料計算をしています。
月ごとに一つのエクセルのデータを上書き保存しながら
更新していっているのですが、

上書きしても前の月の遅刻数を裏で保存してのちに年間の
総遅刻数として合算したいのですが何か方法はありませんか?

特定のセルに 
0010名無しさん@そうだ選挙にいこう
垢版 |
2020/01/31(金) 13:23:00.07
>>7
たとえば、給料計算表シートに、

名前 遅刻数
=MONTH(TODAY())
Aさん 1
Bさん 0
Cさん 1
.
.
.
こんな表があったとして、
別シートに

名前 遅刻数











元シートのC列に遅刻数が入力されているとして、
別シートの2列目あたりに、=元シート名!C2... と入れれば、元シートの現在の
001110
垢版 |
2020/01/31(金) 13:47:10.32
うー、途中で送信しちゃった。ごめんなさい。最初から書き直すと

たとえば、給料計算表シートに、

A列   T列
名前  遅刻数
−   =MONTH(TODAY())&"月"
Aさん 1
Bさん 0
Cさん 1




こんな表があったとして、
別シートに

A列   B列        C列
名前  合計        遅刻数
月               =給料計算表!T2
Aさん  =SUM(D3:D20)  =給料計算表!T3
Bさん  =SUM(E3:E20)  =給料計算表!T4
Cさん  =SUM(F3:F20)  =給料計算表!T5




という表を作り、各月入力する毎に、C列全体をを右ボタンドラッグして順次D列以右に値のみコピー
というのはどうでしょうか
0012名無しさん@そうだ選挙にいこう
垢版 |
2020/01/31(金) 20:43:02.82
【1 OSの種類         .】 Win10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
※VDI環境で使用しています

テキストボックス内に=A1:A5と入力し引用先の数値が反映されるようにしていますが、
保存しようとすると深刻なエラー云々と表示されて保存出来なくなりました。
そのテキストボックスを消そうとしてクリックするも選択出来ず、関数の引用先のセルが表示されて困っています。
テキストボックス内には定期的に変わる数値を反映させており、複数あるので手打ちで1つ1つ変えるのも大変ですし
表示させたい部分のセルサイズ的にセルに表示も厳しい感じです。

良いアドバイスがあればお願いします。
0014名無しさん@そうだ選挙にいこう
垢版 |
2020/01/31(金) 21:52:50.91
とりあえずテキストボックスを消したいのか、いったん消すとしてテキストボックスにセルの内容を表示させたいのか、どちらを聞きたいのかな?
0016名無しさん@そうだ選挙にいこう
垢版 |
2020/01/31(金) 23:01:16.70
>>7
>年間の総遅刻数として合算したい
>月ごとに一つのエクセルのデータを上書き保存

1  年  使  え  よ  wwwwww
       
0017名無しさん@そうだ選挙にいこう
垢版 |
2020/01/31(金) 23:12:43.35
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

複数人で管理する、在庫リストを作成しようとしています
・商品は6種類ほど(増える可能性あり)
・支店は30店舗(2,3ヶ月に一回増えたり減ったり)
・日毎に把握できるようにしたい
・入出荷は事務が伝票を元に入力
・在庫は倉庫の人が確認し、強制的に在庫数を書き換える

という運用をしています。
目的は横領を監視するためのシステムなので、
そこまで厳密にあってなくても良いのです

この場合、どういう構成にすると入力・出力しやすいでしょうか?
今は商品ごとにシートがわかれており、非常に入力が面倒な状態です
0020名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 00:22:43.85
>>18
単価が安くて巨大な物です。
イメージとしては梱包材の発泡スチロールみたいな製品です。
横流しなんてしないだろうと創業者からずっと在庫管理を放置していたら、どんどん悪化したようで、
ある程度はチェックしようということになりました
コストがめちゃくちゃ安いので廃棄に関してはどうでも良く、
横流しして会社の逸失利益が生じるのを最も避けたいといった方向性です

とりあえず映えある第一歩から非常に手間のかかるシート作成で心が折れそうなので、
せめて入力ぐらいは何とかしたいとお知恵を拝借したいと思った次第です
0021名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 00:43:58.00
>>17
まず、データをいじる人や場所が複数あるシステムはExcelに向いてない
自分でやろうとしないでシステム屋に相談したら?
さもないと、このスレがあんたの質問だけで埋め尽くされるほど大変だと思うよ
0022名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 01:03:23.71
面白過ぎるwww
鍵かけるとか防犯カメラ設置するとか、そっちじゃないのか。
逆に、横領するやつがいなきゃ在庫管理システム要らんのかい!ってのも。
そのレベルだと、無理にエクセル使わなくても、紙に手書きで良いような気もするし。
0023名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 01:22:37.57
伝票に、商品の種類を識別できるバーコードでも付いているなら、1シートにまとめても問題ない。
DB的な集計をすればいいだけだから。Excelなら
0025名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 01:33:48.46
>>21
ありがとうございます
大体で在庫管理できるという条件で格安になるシステム、無かったんです

>>22
倉庫担当者が「少ないな、発注しよう」で済み、横領する人がいないなら、在庫管理システムは必要ありません
防犯カメラを設置しても、そもそも盗む人がいませんし、多少なら盗まれても問題ありません。工事現場のコーンみたいなモノです(あれより安い)
ただ、転売されるのはとてtも痛手なのです
0026名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 11:26:26.81
>>25
品数や支店が多いとか少ないとかはあんまり関係なくて、こういうのは作る前の設計が一番大変なんだよ
へたな設計をすると、あとで仕事の内容が変わったり、やりたいことが増えた時に手直しができなくなるし、経験の浅い人にはかなり難しい

いくら目の前にExcelがあるからと言って、システムの製作はけっして簡単でも安上がりでもないんだけどね
0028名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 12:40:31.81
>>25
商品に番号捺印しちゃうってのはダメなんかい。
あ、まだ出荷してない筈の00504から00602がない!
誰かちょろまかしやがった!
あ、メルカリに出品されるじゃねえか!
みたいな。
0030名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 18:34:26.56
スマソ教えてください。

EXCEL2019

フィルターを使ってますがこのフィルター行(1行目)の削除方法知りませんか?
▽が付いてる1行目です。
0031名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 19:18:26.89
【1 OSの種類         .】 Win10
【2 Excelのバージョン   】 Excel2016か365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
バージョンが定かでなくて申し訳ないのですが、質問です。
名前の定義をしてIF関数を使用したところ、数式をコピーしてないのに数式がコピーされたような状態になりました。
名前の定義をした範囲をテーブルに設定しようとすると#spillというエラーが出ます。
自力で調べた範囲ではスピルという新しい機能のようですが、範囲選択の前に@をつける以外で解除する方法がわかりませんでした。
このスピル?を無効化するには、どうしたらいいのでしょうか?
毎回@をつけるしかないのでしょうか、どなたかよろしくお願いします。
0033名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 21:27:02.31
>>31
それは365インサイダーかオンラインで配列数式を使おうとしてCSEではなく間違えてエンターキーを押してしまったというレアなケースです
0034名無しさん@そうだ選挙にいこう
垢版 |
2020/02/01(土) 21:29:55.05
>>33
あ、ちげーわ
計算式を普通に失敗したやつです
数式の範囲を間違えたんだと思います
365新機能のスピルはかなり使えるので調べてみて下さいね
0038名無しさん@そうだ選挙にいこう
垢版 |
2020/02/02(日) 06:51:35.75
>>31です

>>34
計算式を失敗しているときと出てくるエラーが違っていて、名前をつけた範囲には間違いがないようでした。
スピルが適用された?範囲にはテーブルを設定したりは出来ないのでしょうか。

>>35
>>37
そんなに難しい数式等は使えないので、内容が難しいですが動的配列?とか使った事がなく、今回も使用してないのです。
新機能追加によってエラーが出た箇所が共通部分?になっているということでしょうか

質問出来るだけの知識が足りなかったようです。
もう少し自力で調べてみます。
レスくれた方々ありがとうございました。
0040名無しさん@そうだ選挙にいこう
垢版 |
2020/02/02(日) 12:27:10.21
原因聞いてるのに人の話聞けねーキチガイだな
0043名無しさん@そうだ選挙にいこう
垢版 |
2020/02/03(月) 12:48:54.12
vbaのint関数で求めた数字と手計算で求めた数字が食い違います。
調べてみましたが対処法がよくわかりません、どなたかご存知の方いませんでしょうか。
0045名無しさん@そうだ選挙にいこう
垢版 |
2020/02/03(月) 13:16:32.52
>>43
どう違うかの情報がないからなんとも言えないけど
VBAのint関数の仕様と、関数に入れた変数の型について調べてみるといいと思うよ
0047名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 08:48:02.70
2016今日うpでしたら
右クリック、コメントの挿入が出来なくなった
shift+f2でやってるけど、同じ症状いない?
コメント入力後、右クリックすると
メモの削除・メモの表示って「メモ」に変わってるし訳わかめ
0048名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 10:11:14.34
従来の「コメント」は「メモ」っていう名前になったんだよ。

ネットワーク系の機能の強化がしたいらしくて、多人数でやりとりする際の会話履歴も管理できる機能を
新しく追加して、それを「コメント」にしたらしい。

今まで通りの機能が使いたかったら、「メモ」を使う感じ。
0050名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 19:54:27.79
30秒前まで普通に開けてたxlsmファイルが開けなくなりました(機能を停止しましたになる)
有名なバグを起こすWindows updateはインストールされていませんでした
何か解決策ないでしょうか
0054名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 22:08:44.74
>>50
Excelを起動して
「ファイルを開く」のダイヤログボックスで▼をクリックすると
「開いて修復する」ってのが出る。
これで「修復」するか、できなければ、マクロを諦めて「データを抽出」する
0055名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 22:29:23.62
ExcelのかわりにGoogle spreadsheetが台頭してきましたが
これにもマクロは使えるの?
0058名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 22:46:19.89
>>57
Excelのマクロ付きのをそのままspreadsheetに移行できて使えるの?
0059名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 22:47:56.13
単に似てるだけなら
すべてのコードを移植(書き直すことだ)しないといけないなら面倒なことこの上ない
0061名無しさん@そうだ選挙にいこう
垢版 |
2020/02/04(火) 23:28:57.42
googleならその辺やるだろ、ともっていたけど、goolgeは開発者には厳しい
オブジェクトやAccess権からして違う。あまり期待しないほうが良い
0064名無しさん@そうだ選挙にいこう
垢版 |
2020/02/05(水) 20:56:46.88
いい面もあるけど、知らない間に仕様変えられちゃうのがなぁ。
ググると古い情報が引っかかって、たまにどっちやねんってなる。
0065名無しさん@そうだ選挙にいこう
垢版 |
2020/02/07(金) 08:47:51.86
今までは式の入ってるセルにベタ打ちして式破壊!だったけど、これからはスピルのゴーストセルを一生懸命編集しようとして時間を無駄にする
が流行るかな?
「おい!何だこれ!全然入力出来ないじゃないか!PC壊れたあああ!!!」とか
0067名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 11:53:25.88
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

教えてください。

ユーザーフォーム上に配置したリストボックスに30個のデータが表示されています。
30個のデータには1〜30の通し番号が降ってあります。
リストボックスの1つのデータをクリックすると,シートの内容はvlookupによって切り替わっていきます。
シート上のA1セルにも,リストボックスで選択した通し番号に切り替わります。

ユーザーフォーム上には,「次の番号へ」と「前の番号へ」のボタンも配置しています。
シートの内容を連続して切り替えて確認したいときに使うボタンです。

ユーザーフォーム上には,現在の通し番号を表示するテキストボックスも配置しています。
ユーザーフォーム上の「次の番号へ」と「前の番号へ」のボタンをクリックすることで,テキストボックスの通し番号も切り替わっていきます。

このとき,リストボックス上でも,選択している通し番号のデータの反転表示が切り替わっていくようにしたいのですが,現状では切り替わっていきません。
リストボックス上の反転表示も切り替わっていくようにするにはどのようにすれば良いか教えてください。
0068名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 12:07:23.41
>>67
indexを変更させれば良いだけだよ

Private Sub CommandButton1_Click()
ListBox1.ListIndex = ListBox1.ListIndex + 1
End Sub

Private Sub UserForm_Initialize()
ListBox1.AddItem 1
ListBox1.AddItem 2
ListBox1.AddItem 3
End Sub
0070名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 18:22:00.14
関数を使って111という結果が表示されてるセルA1と、ただ数値として111という結果が表示されてるB1は一致しないのが普通ですか?

A1を選択して中身を見ると数式になっているセルの書式設定を数値にしてもA1とB1が一致しません。
0073名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 20:17:50.17
>>70
まさかとは思うけど、計算式の方は結果が文字列になってるってことはないですか?
最後に &"" があるとか、MID関数などの文字列関数が一番外側にきてるとか。
0075名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 20:53:48.23
>>74
セルに書いてあることはあくまでも見せたいものであり、本当の値は上部のバーに出てくる=if(―,/,-,)とか?

つまりA1が111、B1が111と見えていても数式が全然違うから何をどうしても合致しないという結論になるのか。勉強になったわ。
0077名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 21:29:39.60
>>74
VBAのFindメソッドを使った経験があれば、その違いは嫌でも思い知らされることになるな
特に日付などは例えば見た目今日の日付が02/09の書式設定で表示されてる場合は検索値はDateではなくFormat(Date,''mm/dd'')でないとエラーになるわけだし
0080名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 22:48:48.59
=演算子はExceLのxml要素にどんな値が格納されているかをバイナリで比較してるだけだから、セルの値の見た目とか実は殆んど関係がない
=で数値の一致を調べたいならINT関数なりROUND系関数なりで有効桁数をあらかじめ決め打ちしないと
0082名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 23:05:48.51
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

INDIRECT関数で範囲を指定した後、
その範囲を利用して、
INTERCEPT関数やSLOPE関数で
直線の式は算出できますか?
0083名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 23:25:26.86
>>73
結果的に見えるものが111であってもmid使ってるなら文字列になっちゃうとかあるんですか?
それなら書式設定で数値を選択しても実際は数値ではなくなると?
それならそこで「これは数値にはできません」とエラー出してくれたらいいのに。
0084名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 23:25:49.39
>79
ウオッチ式で見てみたけど、prefixcharacterってのがあるらしい
Sub foo()
Debug.Print Cells(2, 1).PrefixCharacter
End Sub
なんか変な処理してるなぁ
0085名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 23:28:37.48
>>83
midだと文字列になるよ
表示形式が数値になっていても文字列


数値にして比較したいなら、*1をつけると良い
=MID("111",1,1)*1 = 111

文字列にして比較したいなら、&""をつけると良い
=MID("111",1,3)*1 = 111
=MID("111",1,3) = 111&""
0086名無しさん@そうだ選挙にいこう
垢版 |
2020/02/09(日) 23:31:06.48
>>76
両者111なのにエラー出るということは両者111ではないとエクセルは判定してると思うんですが。
=なんたらは数式であり111ではないので、これは111とエクセルに認識させるにはなんらかの関数がいる?
0087名無しさん@そうだ選挙にいこう
垢版 |
2020/02/10(月) 00:07:44.34
>>86
まずどういう計算で111を出してるんだ
111つっても111という数値、111という文字列、実は小数点もあるけど表示してないだけ、その他色々あるのに数字だけ言われてもわからん
0088名無しさん@そうだ選挙にいこう
垢版 |
2020/02/10(月) 00:43:06.69
>>81
それはわかる。
数字と'文字でしょう?
何で文字と'文字を作ったのかが謎。
いちいち文字型に変えてから打つのが面倒くさい人用か?
でもそれなら勝手に普通の文字型に変換してくれればいいだけの話だし・・。

>>84
それだとなんか'以外も出てきそう。
0089名無しさん@そうだ選挙にいこう
垢版 |
2020/02/10(月) 05:51:09.38
>>88
> それはわかる。
> 数字と'文字でしょう?
> 何で文字と'文字を作ったのかが謎。
統一してるだけだろ
入力する時にいちいち数値なのか文字列なのかを考えなくていいし、VBAとかで処理する時にも数値と文字列で扱い違うと面倒だし
0090名無しさん@そうだ選挙にいこう
垢版 |
2020/02/10(月) 07:38:43.52
>>88
「’」付きはめちゃくちゃ便利だと思うぞ
何も気にせずに強制的に文字列にしてくれる
なんであるのか、なんて考えても時間の無駄だぞ
0091名無しさん@そうだ選挙にいこう
垢版 |
2020/02/10(月) 07:49:35.51
住所禄の番地だけ別セルに入れようとしたら日付と解釈されてしまったとか、そういうトラブルを避けるために強制的に文字列にするのがアポストロフィ
Excelの挙動や細かいルールを暗記しなくても、初心者でも確実な結果が期待できるというメリットがある
0092名無しさん@そうだ選挙にいこう
垢版 |
2020/02/10(月) 07:55:46.29
プログラミングのルールとして、「' のあとに数字が来たら文字列と見なす」より
「' のあとに何が来ても文字列とみなす」の方がずっと簡単で処理も軽くなるんだよ
0093名無しさん@そうだ選挙にいこう
垢版 |
2020/02/11(火) 03:08:02.42
【1 OSの種類】 Windows10
【2 Excelのバージョン】 Excel2019
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】否
Webサイトから、価格の情報だけをとりだしてセルに表示させることは出来ますか?
例えば、ある商品のヨドバシでの価格、ビックでの価格をリアルタイム(実際にはExcelファイルを開いた瞬間)の価格一覧を表示させたいです
WEBSERVICE関数を使ったりして何とか出来ませんでしょうか?
0094名無しさん@そうだ選挙にいこう
垢版 |
2020/02/11(火) 08:08:24.37
>>93
WEBSERVICE関数は32KBまでしか処理できない
ヨドバシの商品ページは300K、ビックも90Kぐらいあるので、WEBSERVICEでは無理
何か別の方法を考えるしかない

俺がざっと試した範囲だと、価格comをWEBクエリで取り込んで、その中からヨドバシを検索すればなんとかなりそうだった
Excel内だけで完結させたいなら、たぶんVBAを使った方が簡単で確実
0099名無しさん@そうだ選挙にいこう
垢版 |
2020/02/11(火) 17:43:48.62
社内にマクロやVBAの文化がないのですが、どのように始めていくのが、セオリーですか?
スクールで習う?勉強会に参加する?
0100牧野
垢版 |
2020/02/11(火) 18:32:00.58
勉強会に参加でいいんじゃね
鉄板はオフィス田中だと思うけど、まぁどんなとこ行っても大体ok
0102名無しさん@そうだ選挙にいこう
垢版 |
2020/02/11(火) 20:01:30.61
>>93
SeleniumBasic入れて、ユーザー定義関数作るのが良いかと。
Price(商品名,サイト名)とかね
0103名無しさん@そうだ選挙にいこう
垢版 |
2020/02/11(火) 21:42:40.81
勉強会なんてあるかい?
文化がないだけなら自分で作って実演して広めるのが一番だが、
文化もやる気もないとなると、開発依頼が殺到するだけ。
自分以外についてこられそうな人はいるんかい?
0107名無しさん@そうだ選挙にいこう
垢版 |
2020/02/11(火) 22:40:32.54
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

表記ゆれを探す、良い方法はありますか?

取引先の一覧を作っているのですが、
梶A株式会社、(株)、(株)と、この点だけでも表記がバラバラです
何か、良い方法は無いものでしょうか?
0108名無しさん@そうだ選挙にいこう
垢版 |
2020/02/11(火) 23:24:25.06
>>107
そういうのは会社ごとにローカルルールがあるだろうから、どちらかに置換するマクロを自分で作るしかない
違う表記を見つけるたびに置換ルールをどんどん追加してけば、1年後には最強のマクロが出来上がってる
0113名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 10:24:27.32
オレは置換より痴漢に興味があるな
0114名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 10:41:57.63
>>106
マクロ記録は、これこそ正にマクロの真価だといっても過言ではないほどの条件分岐とループが出来ないのがな
さらにブックやシートを指定した操作も難しい、結局ある程度に思い通りになると変数や上記の分岐やループを覚えて自分で書く方に走るのは真面目に覚える気があるのならごく自然な流れ
そこそこ慣れてくるとわざわざマクロ記録で始めるよりも最初から普通に書く方が早いし楽だという結論に至る
俺も今ではマクロ記録など「この動作ってどういうコード書くんだっけ?」という時にしか使わないな
0116名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 13:51:58.36
質問です

シートAの行で連続して空白が8列続いた場合、シートAのa列の文字をシートBのb列に表示(20個まで)

が出来たらご教授ください
0117名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 14:20:48.53
office365付属のecxelです

csv形式のデータを貼り付けると最初のカラムのダブルクオートが消えるという意味不明な制限がかかるのですが、この設定の消し方を教えてください


"a", "b", "c" を貼り付けると
勝手に変換されてa, "b","c"になります
0121名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 19:48:55.92
>>119-120
ありがとうございます
ctrl+vではなくテキストファイル ウィザードを使い、
区切り「選択なし」、文字列の引用符「なし」にしたうえで文字列として取り込むと想定した形になりました
0122名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 20:41:46.36
印刷の質問です
300dpiだと一番細い点線が印刷されますが600dpiだとほぼ印刷されません
網掛けも同じ状況です
300dpiだと文字も汚くなるので600dpiで線や網掛けを印刷するにはどうしたらいいでしょうか?
0126名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 21:15:21.59
>>124
一番濃くしてもなりません
>>125
精細モードはどこでやるのですか?

300dpiは印刷される
600dpiではかすかすでほぼ印刷されない
1200dpiではまったく印刷されない
でした

プリンタはブラザーのHL-5250DNです
0130名無しさん@そうだ選挙にいこう
垢版 |
2020/02/12(水) 23:29:53.99
よくわからん。
逆のような気がするんだが。
SFC版フォーメーションサッカーで、奥のゴールが小さくなれば小さくなるほど網目が崩れるのと同じ原理じゃないの?
0132名無しさん@そうだ選挙にいこう
垢版 |
2020/02/13(木) 06:33:52.61
>>126
モノクロレーザーだからじゃない?
グレーの塗りつぶしとかも網掛けでしないとちゃんと印刷できない
極細ヘアラインはカラーだからかろうじてできてる人がいるんじゃなかろうか
0133名無しさん@そうだ選挙にいこう
垢版 |
2020/02/13(木) 06:44:50.06
解像度の低いモニターやプリンターでも太さの違いを表現するために、Excelの一番細い罫線は実はグレーの点線になってる
モノクロレーザーだと、グレーの部分は閾値の関係で白になってしまうことがある
これはプリンタ設定の印刷濃度とはまた別の話

この対策としては、一度高解像度のPDFに変換してから印刷すると、うまくいく場合もある
0134名無しさん@そうだ選挙にいこう
垢版 |
2020/02/13(木) 06:51:01.19
>>133
300だと印刷されるのもこういう理論なんだろうねグレー成分半分だから線として印刷されるみたいな

これはPDFにするしか方法ないの?
白黒印刷とかそんなんじゃだめなのかな?
0135名無しさん@そうだ選挙にいこう
垢版 |
2020/02/13(木) 08:17:17.83
セル罫線がわりにオートシェイプの線なら出来そう
っていうか
セル罫線は画面と印刷結果で太さ違う
オートシェイプの線なら太さ任意で指定できる
0136名無しさん@そうだ選挙にいこう
垢版 |
2020/02/13(木) 08:28:04.18
モノクロレーザーなら普通はグレースケールを網点に変換する設定がプリンター側にあるんじゃない?
そもそも元の質問には罫線とは書いてないけど、何を印刷したいんだろう
013793
垢版 |
2020/02/13(木) 14:37:38.90
>>94
>>102
ありがとうございます
プログラミングとか全くわからないので、今の自分には難しそうですね…
0138名無しさん@そうだ選挙にいこう
垢版 |
2020/02/13(木) 18:03:03.24
officeが更新できない
0139名無しさん@そうだ選挙にいこう
垢版 |
2020/02/13(木) 20:56:02.66
【1 OSの種類 .】 Windows 8
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか  】 いいえ
【4 VBAでの回答の可否】 否

クエリにて更新するシート1のデータを元データとしてシート2やシート3にピボットテーブルで排出しデータやグラフで管理しています
シート4に別の管理をするためシート1のデータをSUMPRODUCT等で引っこ抜いて表示させようとして作成し上書き保存しました。
特にエラーコメントも出ていないのに何故かシート2やシート3のピボットテーブルがデータを貼り付けた表示に変わってピボットテーブルが消えました

バックアップしていのでやり直しましたがまた発生しました。ピボットテーブル自体何も変更していないのにただのデータ表示に変化する原因が分かりません

何か考えられる原因があれば教えて下さい
0140名無しさん@そうだ選挙にいこう
垢版 |
2020/02/14(金) 19:35:46.52
【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013〜2019
【3 VBAが使えるか  】 はい
【4 VBAでの回答の可否】 可

a = ie.document.frames("aaa").document.forms("bbb").document.getElementsByTagName("ccc")(0).innerHtmlって長げえわ!!
と思ってSetを多用するんだけど、関数上でSetすると不安定になるの何とかならん?
今まで問題なかったものが、突然強制終了するようになったり、エラーになるはずの部分が飛ばされたりするんだわ。
例えば↓こういうのがあったら、On Error Resume Nextを使わない限り、普通はAで止まるじゃん?

順番@ MsgBox 存在するieオブジェクト.Name  ← メッセージが表示される
順番A MsgBox 存在しないieオブジェクト.Name ← エラーが出ずに飛ばされる
順番B MsgBox 存在するieオブジェクト.Name  ← メッセージが表示される

それが止まらずに、@とBだけ実行されたりするんだわ。
IE型をやめてObjectにすると直ったり、直ったと思ったらまた出て、関数を別のモジュールに移したら直ったり。
PublicとPrivateや、ByValとByRefを間違えているということでもない。
0143名無しさん@そうだ選挙にいこう
垢版 |
2020/02/14(金) 19:47:52.13
DLLのバージョンとIEのバージョンの齟齬は無いのか
0144名無しさん@そうだ選挙にいこう
垢版 |
2020/02/14(金) 19:48:43.99
そもそもいまさらIE操作して動かないとかアホすぎんじゃないのか
0145名無しさん@そうだ選挙にいこう
垢版 |
2020/02/14(金) 19:50:23.68
自分が環境の変化についていけてないジジイのくせにバグだなんだ言い出すのは恥ずかしくないのか
0146名無しさん@そうだ選挙にいこう
垢版 |
2020/02/14(金) 19:52:22.60
>>140
ブレークポイント置いて変数の中身はチェックしたか?
最小構成で動作確認したか?
オブジェクトとプロパティとメソッドとエレメントと戻り値を間違えてないか?
Setできるのはオブジェクトだけだぞ
0147名無しさん@そうだ選挙にいこう
垢版 |
2020/02/14(金) 20:17:44.58
>>146
確認してもわからん。
動くときは問題なくて、強制終了する時は空だから。

MsgBox ieObject ← 直前までは入っている
a ieObject

Sub a(ieObject)

MsgBox ieObject ← 空 (問題ない時は[object]と表示される)

End Sub

なんでやねん。
0149名無しさん@そうだ選挙にいこう
垢版 |
2020/02/14(金) 20:41:14.73
Const A As String = "A"

getElementsByName("A")(0)      ・・・ OK
getElementsByName(A)(0)        ・・・ 種類が一致しません
getElementsByName("" & A & "")(0) ・・・ OK

何でやねん
0159名無しさん@そうだ選挙にいこう
垢版 |
2020/02/16(日) 00:50:02.80
VBAはエクセルの機能の一つ。
全く問題ない。
0161名無しさん@そうだ選挙にいこう
垢版 |
2020/02/16(日) 15:07:00.27
よろしくお願いいたします

【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010と2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

A列からE列まで5列、行数は100行から500行(毎回ちがう)の表があります。
タイトル行は3行目にあり、4行目から下にデータがあります。
実現したいのは、タイトルのセルをクリックするとその列を基準にして
データを並べ替えするようにしたいです。
・A3をクリックするとA4からE最終行までをA列基準で並べ替え
・B3をクリックするとA4からE最終行までをB列基準で並べ替え
・3行目以外、AからE列以外のセルをクリックしても何もしない


こんなことできますか?
0164名無しさん@そうだ選挙にいこう
垢版 |
2020/02/16(日) 15:32:58.61
>>162-163
すみません。
並べ替えついでに色の変更とかやりたいのと、
後学のために、
「セルのダブルクリックを補足し、機能付加したいセルだった場合はその機能の命令を実行する」
という方法を知りたいのです。
0168名無しさん@そうだ選挙にいこう
垢版 |
2020/02/16(日) 16:52:16.49
本読め
実本じゃなくてブログとかでもいいからとにかくそれなりにまともな文章を読みまくれ
0170名無しさん@そうだ選挙にいこう
垢版 |
2020/02/16(日) 19:47:50.66
>>164
色の変更したいなら手動でやれ
後ろのはWorksheet_SelectionChangeイベント
あとは調べろ
0172名無しさん@そうだ選挙にいこう
垢版 |
2020/02/17(月) 13:29:45.73
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelデータをメールで送りたいんだけど、ほかのファイルから参照してるセルがあって、相手にはエラーで表示されるみたいなんだけど、改善する方法ありますか?

送るときにpdfにしたり、エラーの出るセルを数値として修正してから送ったりしてるんだけど、それ以外の方法があれば教えてほしいです
0178名無しさん@そうだ選挙にいこう
垢版 |
2020/02/18(火) 04:41:52.46
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

https://i.imgur.com/C4RqQ4o.jpg

このような表をA9のセルにB.Eセルの横が〇の時間数の合計を入れたいのですがどういう数式になりますか?
0179名無しさん@そうだ選挙にいこう
垢版 |
2020/02/18(火) 10:12:53.14
>>178
B,Eセルが左詰めになってるから、文字列で入ってると想定して、

=SUM(IF(A1:A7="○",VALUE(B1:B7)),IF(D1:D7="○",VALUE(E1:E7)))

配列数式だから、Ctrl+Shift+Enterすること
○が付いてる欄に、数値に変換できない文字が入ってるとVALUE関数のところでエラーになるので注意
0181名無しさん@そうだ選挙にいこう
垢版 |
2020/02/19(水) 19:22:41.63
=あ&" "&いう
↑全角空白2マス
このセルに対してright関数で4文字抜き出すとなぜか「あ いう」と抜き出されてしまいます、なぜでしょうか?
0187名無しさん@そうだ選挙にいこう
垢版 |
2020/02/20(木) 10:07:15.92
今まで現場一筋でエクセルは稟議書の雛形に入力して作ったり、テナントへのお知らせ
作ったり位しか経験なく、転職で内勤になることになり4月1日から事務作業メインで
やることになったのですが、今から4月1日まででエクセルを学ぶ場合どのようなこと
やった方がいいとか、どのような参考書がオススメ等あるでしょうか?

家のエクセルは2013のもので面接では4月1日までにエクセルで表作ったり表計算
出来るようにはなってほしいという感じで言われたのですが…。
0188名無しさん@そうだ選挙にいこう
垢版 |
2020/02/20(木) 12:43:25.37
>>187
罫線やセルの背景色などの書式設定、四則演算、IF関数、VLOOKUP関数あたりが一通りできればたぶん合格点貰えるのではと思う

インプレスっていう出版社からいくつか出てる初心者向けのテキストが手頃で良さそうだよ
0189名無しさん@そうだ選挙にいこう
垢版 |
2020/02/20(木) 13:32:01.07
>>187
バージョンによってメニューの場所とかだいぶ変わってるから、すぐに仕事させられるんなら同じのを買って慣れといた方がいいかも
数式を覚えるだけなら基本的な部分は同じだからそのままでもいいけど
0192名無しさん@そうだ選挙にいこう
垢版 |
2020/02/20(木) 15:17:51.82
>>187
用途によっても変わるけど、少なくとも上司とか誰かに引き継ぐ書類なら無意味な空白を入れない、セル結合はしない
標準の設定の通り文字列は左寄せ、数値は右寄せにして中央揃えはNG、どうしても左右の間隔が気になるならインデントで調整する
数値は出来る限り桁区切りを使用し、日付やその他単位を付けるならベタ打ちではなく書式設定をする
0193名無しさん@そうだ選挙にいこう
垢版 |
2020/02/20(木) 15:34:47.26
187ですが色々教えていただきありがとうございます!

4月に入社する会社にofficeのバージョン、どういう資料作るのか聞いてみて
それにあったインパルス社のできるゼロからはじめるエクセル〇〇〇〇超入門や
FOM出版のよくわかる初心者のための Microsoft Excel 〇〇〇〇等年代あったもの
購入しようと思います!
0194名無しさん@そうだ選挙にいこう
垢版 |
2020/02/20(木) 17:50:09.68
Excel仕事は「面倒くさいだのと言ってたら仕事にならん(キリッ!)」などと思考停止してせっせと面倒くさい作業をしていては仕事にならない
一々右手をマウスに持ち変えてクリックするのが面倒くさい→ショートカットを使いましょう
何行も何列も手入力するのが面倒くさい→関数やオートフィルを使えばよい
改めて集計結果の表なんて作ってられない→ピボットテーブルがあるじゃないか
こんなのひたすら手作業手入力でやってたら何時に帰れることやら・・→マクロ・VBAの世界にようこそ
という具合でExcelに限らず「面倒くさい」と感じるのは効率化の第一歩なんだよな
0198名無しさん@そうだ選挙にいこう
垢版 |
2020/02/21(金) 00:39:38.54
【1 OSの種類         .】 Windows 8.1
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

複数シートがあるファイルで,ある2つのシートを両面印刷したいです。
ネットで検索すると,両面印刷はプリンター側の範疇なので,EXCELやVABでは制御できないという記述しか見つかりませんでした。
プリンターのダイアログボックスが表示されるようにVBAに記述し,そこで両面印刷に切り替えればなんとかなりそうだ,まではたどり着きました。
しかし,その2つのシートを選択し,上記のようにしても両面印刷にはならず,片面印刷で2枚プリンアウトされるだけでした。

更に考え,2つのシートをカメラ機能を使って別のシートに並べて貼り付けました。
そして,印刷し,プリンターのダイアログボックスが表示されたときに,両面印刷すると,なんとか両面印刷することができました。

しかし,次の問題が出てきました。2枚のシートの上下左右の余白が異なるためか,カメラ機能で2枚を貼り付けたシートを印刷すると,3〜5ミリほどですが大きさの異なった状態で印刷されるのです。
「3〜5ミリの差異があるが認められるか」と問い合わせると,「認められない」という回答でした。
2つのシートはある様式で表組みされており,VLOOKUP関数を用いて別シートから読み込んだデータを読み込んでいます。
VLOOKUP関数で任意の番号のデータを読み込んで印刷するため,裏表の内容が別番号のデータにものにならないように,1度で両面印刷したいのですが。

現状だと,1シート目をプリントアウトし,その用紙を並べ替え,プリンターにセットし直して2ページ目を裏に印刷する。その後,裏表の内容が同一番号のデータ化を目で確認するという方法しか思いつきません。
何か良い方法があれば教えてください。
0200名無しさん@そうだ選挙にいこう
垢版 |
2020/02/21(金) 02:06:41.06
カメラ機能ってなんやねん。
0201名無しさん@そうだ選挙にいこう
垢版 |
2020/02/21(金) 11:10:52.07
【1 OSの種類         .】 Windows 10
【2 Excelのバージョン   】 Excel 2019

条件付き書式が設定されているセルをコピペすると
条件付き書式が引き継がれないんだが俺だけ?
0204名無しさん@そうだ選挙にいこう
垢版 |
2020/02/21(金) 12:41:20.31
>>203
強いて挙げると文字数がバラバラだと見た目不細工なのと、数値と文字列の区別が付き辛いとこかな?
見た目は気にしないのとそもそも数値と文字列の違いなどわからんという人の方が多いだろうから大した問題でもないけど
0205名無しさん@そうだ選挙にいこう
垢版 |
2020/02/21(金) 13:56:25.34
『コントロール』+『F』で検索するときに、
前に検索した文字が出てきてしまいますが、
なにも文字が出てこないようにって出来ますでしょうか?
0206名無しさん@そうだ選挙にいこう
垢版 |
2020/02/21(金) 15:09:27.06
前の設定をそのまま使えるってのがウリだからできないんじゃないのかな
0217名無しさん@そうだ選挙にいこう
垢版 |
2020/02/22(土) 09:18:22.17
エクセルで全選択というのは、すべてのセルを選択した状態を指すのが一般的。
セルを編集状態にして、そのセルの文字列全体を選択するのを全選択というのは、分からなくはないけど。
0221名無しさん@そうだ選挙にいこう
垢版 |
2020/02/22(土) 10:02:12.67
少なくとも「謎の単語」じゃないわな
0227名無しさん@そうだ選挙にいこう
垢版 |
2020/02/23(日) 00:58:43.31
他人の操作が気に食わないというどうでもいい主張に、お前の使う単語も気に食わないと言い合ってるだけ
大事な部分は1ミリも無い
0228名無しさん@そうだ選挙にいこう
垢版 |
2020/02/23(日) 06:37:04.11
謎の単語使う奴がボコられてるだけのいつもの光景w
まあこう言う奴は反省しないからゴキちゃんみたいにまたどこかで出てくる
0231名無しさん@そうだ選挙にいこう
垢版 |
2020/02/23(日) 15:09:51.85
ってかMOSは落ちる人なんているのか?って思った
対策しなかったらダメだろうけど模試やってったら900点は確実に取れるじゃん
0233名無しさん@そうだ選挙にいこう
垢版 |
2020/02/23(日) 15:21:29.93
ありがと。得点みたら964点だったよ。何をミスったか分からんけど使い方の曖昧なところを整理するくらいのつもりだったのでまあ目的は果たした。
むしろVBAを触るのでそっちの試験の方が興味あるくらい。
0237名無しさん@そうだ選挙にいこう
垢版 |
2020/02/23(日) 15:45:34.80
>>236
資格板にMOSのスレあるからそっち言った方が良いぞ
2000円ぐらいの模試本買って5,6回練習すれば受かる
バージョン違いでも動くしやることは結局ピボットが中心だからバージョンによる影響はほとんどない
0240名無しさん@そうだ選挙にいこう
垢版 |
2020/02/23(日) 18:49:23.27
VBAで、MS QueryもADOもWindowsAPIもUIAutomationも使えるが、
余裕で落ちる気がするわ、その試験。
いつもVBAで書いてるのと同等の機能のボタンがどこにあるかわからんとか、普通にあるし。
0242名無しさん@そうだ選挙にいこう
垢版 |
2020/02/25(火) 16:40:17.89
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

複数のシートを持つexcel形式の書類をiPad(他、androidタブレット)で閲覧するために、逐一PDFへの変換を行っています。
(エクセルブック形式のままでもiPad上で閲覧・編集もできるのは認識しています。
iPad上では閲覧のみを行い編集の必要がないため、軽快に閲覧が可能なPDFに変換し閲覧しています。)

現状、excelファイルを開いた後に
(1)「ファイル」→(2)「名前を付けて保存」→(3)(場所を選ぶ)→
→(4・5)ファイルの種類を「Excelブック(*.xlsx)」から「PDF(*.pdf)に変更」→
→(6)「オプション」→(7・8)発行対象を「選択したシート」から「ブック全体」に変更→
→(9)「保存」

と、そこそこのクリック数が必要で、変換する書類の数もそこそこ多い為
操作の簡略化が出来れば、と思っています。

自分でやってみたこととして、
クイックアクセスツールバーに「PDF/XPSの作成」を登録することで、
(1)〜(5)を省略できたのですが、
発行する対象のデフォルトが「選択したシート」な為、「ブック全体」の変換を行うために
(6)〜(8)の操作が必要なのであと一息楽ができればと思うのですが、

@発行対象のデフォルトを「ブック全体」に固定する方法、

A「1クリックでブック全体の表示されているシートをPDFに変換する」という機能(ないしマクロ)をがあれば教えていただければ幸いです。

Bまた、エクセルファイルを開くまでもなく、
エクセルファイルをパッチ(?)などにドラックしたら
PDFに変換された、みたいなことも可能なのでしょうか?
0243名無しさん@そうだ選挙にいこう
垢版 |
2020/02/25(火) 17:48:01.19
>>242

2はマクロならできます。
それ以外でできるかは分かりません。

3はフリーソフトとか、スクリプトとかあると思うので探してみてください。
0245242
垢版 |
2020/02/25(火) 19:21:52.98
Aのマクロと
Bのスクリプト
完成しました。お騒がせしてすみません。

@の、デフォルトで選択されてる保存方法を変更できる方法があれば引き続き教えてください。
(「前回の保存方法に準じたものが選択されている」のが理想なのですが・・・)

微妙にシチュエーションが違いますが、
画像を挿入しようとすると「ピクチャ」から選び始めになったり
1クリック単位でめんどくさいと思う場面が多いので、
固定か選択ができるなら変更したいです。
0247名無しさん@そうだ選挙にいこう
垢版 |
2020/02/26(水) 07:12:22.67
>>245
> (「前回の保存方法に準じたものが選択されている」のが理想なのですが・・・)
が、何を言ってるのかよくわからんけどブック全体をPDFにするだけなら
Worksheets.Select
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, fileName:="ファイル.pdf"
でいけると思う
0249名無しさん@そうだ選挙にいこう
垢版 |
2020/02/26(水) 12:42:33.94
こんな感じでどうや

Sub Sample()

Dim strFilePath As String
strFilePath = Application.GetSaveAsFilename(InitialFileName:="Sample")

ThisWorkbook.ExpoSubrtAsFixedFormat Type:=xlTypePDF _
, Filename:=strFilePath _
, OpenAfterPublish:=False

End Sub
0250名無しさん@そうだ選挙にいこう
垢版 |
2020/02/26(水) 17:25:07.20
文字列の長さに応じて列の長さを変えたいと思います
vbaでの列幅の自動調整方法としてはautofitがありますが、入力即自動で列幅調整を入れるためにselection changeに書くと、セルを選択するだけですでにあるセルが謎の長さに調整されてしまいます
これはどういうことなのでしょうか。

また、本文書はA4縦印刷を想定していますが、列が自動調整された結果、横が収まらなくなった場合のみ横向きで印刷するようにするにはどう書けばいいでしょうか。
0251名無しさん@そうだ選挙にいこう
垢版 |
2020/02/26(水) 19:07:45.95
そりゃそうでしょう。
selection changeって選択時に発動するイベントだし。

紙の縦か横かは、
例えばA〜G列のWidthをひたすら足して、一定の値を超えるかどうかで判定。
0252名無しさん@そうだ選挙にいこう
垢版 |
2020/02/26(水) 19:54:10.98
セルから時間を引いて、時間を出したいのですがどうしたら良いでしょうか?
具体的にはIF関数の中に、セル(時間のシリアル値)から10:00(固定)を入れたいのですが方法が分かりません。
初歩的な質問ですが、色々なキーワードでググっても分からなかったのでよろしくお願いします。
0254名無しさん@そうだ選挙にいこう
垢版 |
2020/02/26(水) 20:00:27.47
>>253
そんな単純な方法で良かったんですね。ありがとうございました!
0257sage
垢版 |
2020/02/27(木) 01:06:59.72
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

6ヶ月後の前日を計算する場合EDATE関数から1日を引くが簡単だと思いますが、月末時の日付処理がうまくできません
具体的には
2019/04/30→2020/10/29
2019/08/31→2020/02/28(本当は29日にしたい)
2019/07/31→2020/01/30

1つの関数で処理できないのでしょうか?
月末以外はうまく処理できるのですが…
0259sage
垢版 |
2020/02/27(木) 06:23:19.00
>>258
edateで半年後を求めてそこから1日ひいています
月中やほとんどの月末は問題ないのですが、3月や8月の半年後が想定通りいかないので、そこは手入力
ミスを減らしたいので統一した関数にしたいのです
0260名無しさん@そうだ選挙にいこう
垢版 |
2020/02/27(木) 06:39:09.11
>>259
もし、式が
=EDATE(A1,6)-1
だとすると、8月以外にも
3月31日→9月29日
5月31日→11月29日
10月31日→4月29日
12月31日→6月29日
になるけど、それも全部手作業で30日に修正してるってこと?
0261名無しさん@そうだ選挙にいこう
垢版 |
2020/02/27(木) 07:20:21.75
>>257
=EDATE("2019/08/31"-1,6) だと2020/2/29になったけど、今度は31日無い月の翌月の初日で問題あるね
正解の方が大きいはずだからMAXとればいけると思うけど、それだと関数3つになるからNGか
それなら配列式使ってEDATEを一つ減らして、

=MAX(EDATE(基準日-{1;0},6)-{0;1}) で関数2つが今のところ限度かな。

ちゃんと検証してないからNGパターンがあるかもしれないけど。
0262sage
垢版 |
2020/02/27(木) 07:24:35.85
>>260
そうなります
書類の保管期限のことなので、他にも3ヶ月や一年以上もあります
edateが存在しない日付の場合前日を設定するので…
edate-1が存在しなければ前日にするというふうになればいいのですが、うまくできないでしょうか?
0263名無しさん@そうだ選挙にいこう
垢版 |
2020/02/27(木) 07:53:09.76
>>255
>>256
ありがとうございます。""で囲むのは盲点でした。無理と思って試していなかったです。
そんなに簡単な方法があるならググっても出てこなかったのは当然ですね
0267名無しさん@そうだ選挙にいこう
垢版 |
2020/02/27(木) 17:49:41.67
利息計算するにあたり、利率iをどの型で定義するのがいいか迷ってます
currencyだと小数点第3位で四捨五入されてしまうらしくそれ以上続く利率の時計算できない、doubleだと500,000円以下の時なぜか1円少ない計算結果になるなどの不具合が見つかってます
何かいい案ないでしょうか?
0270名無しさん@そうだ選挙にいこう
垢版 |
2020/02/27(木) 21:00:39.10
>>267
利息の計算方法は金融機関によって違う
ネットで調べるか、問い合わせれば、何日ごとに少数何位でどうするか、細かいルールをきちんと教えてくれる
まずはそこを調べて、その通りに計算する式を作らないと、単純に利率を掛けただけでは誤差が出る可能性がある
0273名無しさん@そうだ選挙にいこう
垢版 |
2020/02/28(金) 06:54:24.13
>>272
循環小数や桁落ちによる演算誤差を避けるため、>>270の言うように金額計算に絡む計算機での小数点の扱いは金融機関や財務部門の運用で決まっていることが多いと思う
普通は許容誤差を定義して定点データに対して許容誤差内の端数値を切り捨ててるはず
単純に10進数表現での計算精度を高めたいならVariant型で一度変数宣言してからCDec関数に利率計算の式を突っ込んでDecimal型に型変換すると良いけど、これも演算誤差の問題は避けられない
0274名無しさん@そうだ選挙にいこう
垢版 |
2020/02/29(土) 12:04:47.62
時間合計で24Hを超えたら1日と何時表示できるようにする方法を教えて下さい。

書式HH:MM:SSのセルを合計させた
例えば、55:26:22という数字を "2日7:26:22"とセルに表示させたいです。
ユーザー定義D日 HH:MM:SSだと2日になってくれず 1日 07:26:22となってしまい、

=ROUNDDOWN(** /24,0)&"日"&**-(ROUNDDOWN(**/24,0)*24)&"時間"
というのもあるそうですがこれだとHH:MM:SSセルでは使えないです。

よろしくおねがいします。
0276名無しさん@そうだ選挙にいこう
垢版 |
2020/02/29(土) 13:25:34.13
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

テーブルとして書式設定された表の一部分のみソートしたいのですが、範囲選択してソートしても表全体が並びかえられてしまいます。
どうすれば一部分(今回の場合、ある行より下のみ)を並び替えることが出来るのでしょうか。
0277274
垢版 |
2020/02/29(土) 13:27:10.19
>>275
できました。ありがとうございます。
0278名無しさん@そうだ選挙にいこう
垢版 |
2020/02/29(土) 19:49:12.05
>>276
VBAで一瞬テーブルを解除して、ソートして、再度テーブル化するだけだが、
そもそもそのテーブルの使い方が変なんだと思う。
テーブルというのはDB的に使いたい時に使うものだから、
一部分だけをソートする必要がある場合、
区分用の列を作って、それを基準にソートする方がいい。
0281名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 02:09:21.83
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

助けてください

エクセルで条件付き書式→セルの強調表示ルールで「濃い赤の文字、明るい赤の背景」を使用しました。

そこで使われた「明るい赤の背景」がどの色なのかわかりません。
手動で同じ色に塗りたいセルがあるので困ってます。

通常ですと塗りつぶし、その他の色、ユーザー設定を見てRGBを調べるのですが、条件付き書式で自動設定した色の場合はセルの情報見ても色が付いていないことになってしまっていて...
どなたかご教示下さい
0283名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 09:23:32.15
>>281
その塗りつぶされたセルを選択した状態で
「条件付き書式」→「ルールの管理」→「ルールの編集」→「書式」→「塗りつぶし」→「その他の色」
でRGBが出る
0284名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 10:56:25.50
>>282
ありがとうございます!
すぐに解決しました!

申し訳ありませんがもう一つ質問よろしいでしょうか?
現在、A行にプルダウン式で任意の品名項目を選択することによりB行の数値変動を見ることができる表を作成しています。

その場合B行の計算結果のセルには subtotalが不可欠かと思うのですが、B列には計算に含みたくないも行もあるため、手動でセルを選択して式を入力しておりました。(決まった行間隔)
徐々に行が増えてきており手打ちが不可能になってきました。modを使用したいのですが、そうするとsubtotalができず悩んでいます。
subtotalを活かしつつ任意の行のセルの数値を足す技はないでしょうか?
0285名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 18:08:46.99
sumifs関数で除外する行に除外フラグたてて
品目一覧毎の合計取得したほうがよくね?
Subtotalで手作業の範囲指定なんて間違える元じゃないか?
0286名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 21:36:24.32
subtotalで配列数式とか組めば行けるかと思ったけどうまく行かなかった
=+SUMPRODUCT((MOD(ROW(C2:C10),2)=1)*SUBTOTAL(9,C2:C10))

これなら行けるんだけど、ハテ
=++SUMPRODUCT((MOD(ROW(C2:C10),2)=1)*C2:C10)
0287名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 22:34:28.07
Decimal で 使いたい場合、Variant 型で定義し、そこに CDec 関数で値を代入すると、Decimal 型として使える。
↑これはどういう意味でしょうか・・
0288名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 22:58:55.64
>>287
decimalは桁数だけで見ると最も大きい数字を扱える
https://www.tipsfound.com/vba/02008

反面小数などは一切使えないし、確か計算も遅かった気がする

で、そのdecimalは型としては存在するんだけど何故か宣言できない
dim a as decimal 'ってのができない

どうしても使いたい場合は、
Dim a
a = CDec(1)
とかにするとaがvariant/decimal型になる

なんでこういう仕様になってるのかはよく分からん
0289名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 23:18:53.94
>>288
小数には使えないんですか?
ググった限りだと10進数の小数を2進数に変換するときの丸め誤差をなくすためにdecimalを使うというような話を見たので、小数点以下の計算の精度を上げるためにこそ使えるものだと思ったんですが・・
0291名無しさん@そうだ選挙にいこう
垢版 |
2020/03/02(月) 23:40:05.53
>>289
あぁごめん、ちょっと間違って覚えてた
その認識で合ってるよ

少し言い訳すると、decimalは最終的に小数点も扱える
しかし、decimalは内部的に小数無しで計算している。
全部整数だけで計算して、後から小数点をポンと付ける感じ

Sub foo()
Dim a
a = 0.1 + 0.2
Debug.Print (a = 0.3) 'false

a = CDec(0.1 + 0.2)
Debug.Print (a = 0.3) 'true

End Sub
0296名無しさん@そうだ選挙にいこう
垢版 |
2020/03/03(火) 00:06:32.00
>>295
名称、種類という列があってPCパーツとします。
種類毎にカテゴリー表示してほしいのですが一番上はCPU2番目はメモリ3番目はマザーボードというように
自分で並び順のカテゴリーを決めたいです。
0299名無しさん@そうだ選挙にいこう
垢版 |
2020/03/03(火) 03:06:53.71
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

スピルの無効化についてです
帳簿を作っていてタブAに日付と金額のデータがあります
タブBに各月の最終日の日付とその月の合計データを計算したセルを自動で入力されるように=でセルを反映させようとしています
タブBの最終日を反映させたいセルの下にはそれぞれ空白があり入力してほしくないセルですがスピルが出てきて謎の日付が表示され金額についても同様です
また一度保存したあとスピルの入ったセル自体を消そうとすると消せなくなってしまいました
かなりイライラしているので分かりづらい文章で申し訳ありませんが解決策をご教示ください
0302名無しさん@そうだ選挙にいこう
垢版 |
2020/03/04(水) 01:12:39.65
参照元のタブを別のファイルに分けることでスピルが出てこなくなったのでとりあえずは解決できました

>>300
>>301
ファイルを出せずすみません
数式の前に記号のヒントもいただいたのでそちらも調べてみます
考えていただきありがとうございました
0303名無しさん@そうだ選挙にいこう
垢版 |
2020/03/04(水) 17:27:24.94
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

下記URLで案内されているセルの最後に文字列挿入機能ですが
https://software.opensquare.net/relaxtools/archives/204/

Excel365にも同様の機能が用意されているでしょうか
0304名無しさん@そうだ選挙にいこう
垢版 |
2020/03/04(水) 19:17:24.01
重ためのエクセルをWin7 Celeron エクセル2010で使っていた。

今日始めて、同じファイルを Win10 i3 エクセル2016で使ってみた。

エクセル2016が2倍近く遅い。
0306名無しさん@そうだ選挙にいこう
垢版 |
2020/03/04(水) 20:35:59.69
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

「グーウウゲグルン」で検索してもGoogleが出てくるのは凄いと思うんですけど、
それをExce
0308名無しさん@そうだ選挙にいこう
垢版 |
2020/03/04(水) 21:17:27.57
androidのエクセルはいつバージョンからかコントロールキーを乗っ取ってしまうようになっていてGoogle日本語入力の変換ができない、従って別れを告げた
0309名無しさん@そうだ選挙にいこう
垢版 |
2020/03/04(水) 21:26:58.90
あれは機能がどうこう以前だよなあ。
PCでファイルを作るでしょ。
16:9で見るのを前提に。
それを縦長スマホで見ると狭くて見づらいの。
0311名無しさん@そうだ選挙にいこう
垢版 |
2020/03/04(水) 23:42:50.00
>>304
原因はエクセル
オフィスが2010から2013になった時にクッソ重くもっさりになった
オートシェイプの丸枠のデフォルトとか嫌がらせに近い

SSDにしてメモリ8G積めばそこそこマシにはなると思うよ
0312名無しさん@そうだ選挙にいこう
垢版 |
2020/03/05(木) 02:55:58.87
肥大化したファイルサイズを小さくする方法をご教授下さい。
Vlookup等でデータを引っ張りながら、昔から引き継いでいる100列×100行程度に人事情報等を管理しているファイルがあります。
シートを新しいエクセルファイルにコピーし、値化しても、範囲外のセルを削除しても、オブジェクトの選択で不要なオブジェクトを削除してもファイルサイズが2MBと非常に重たいままで困っています。
新しいエクセルファイルに値で貼り付けする方法もあるかと思いますが、出来れば元のファイルサイズを縮小化したいと思っています。
どなたかご教授いただければ幸いです。
0313名無しさん@そうだ選挙にいこう
垢版 |
2020/03/05(木) 06:17:24.61
オブジェクトが知らぬ間に増殖していた、に100ガバス。
0315名無しさん@そうだ選挙にいこう
垢版 |
2020/03/05(木) 09:54:09.01
>>312
データ量が少ないのに、極端にファイルサイズが大きくなったという十数年前(Excel2000の頃)の例だと
最下行(当時は65535行か)に空白かなにかのゴミデータがあったというのがありました。

ワークシートの最後のセルを特定してリセットする で検索してみるといいかも。
0320名無しさん@そうだ選挙にいこう
垢版 |
2020/03/05(木) 18:18:31.78
教えてください。
デスクトップにあるブックのアイコンをダブルクリックして開くとき、私の環境(windows10-office2010)だと、
既に開いてるエクセルウィンドウがあればその中でブックが開かれます。
ネットで見たところこれは2007と2010までの動作であって、2013移行は毎回別のウィンドウ(別のエクセル)が起動し
その中でブックが開かれると見ました。

これは本当なのでしょうか?レジストリをいじって変更できるそうですが、デフォルトの動作としてこうなっていますか?
つまり2013移行の最新のオフィスなら、毎回別のウィンドウで開くと期待していいのでしょうか?

今、365等のエクセルで使用する、マクロ付きのブックを作っているのですが、この点が気になっています。
0321名無しさん@そうだ選挙にいこう
垢版 |
2020/03/05(木) 18:58:27.98
>>320
レジストリをいじるのは、昔のExcelでウィンドウを増やしたい時だけです
新しいExcelでウィンドウを減らす(まとめる)方法はありません
0323312
垢版 |
2020/03/05(木) 22:20:11.30
皆様ご教授ありがとうございます。
>>312ですが
Ctrl+del等含めて色々試し、最終的には全ての行・列を削除し、書式・値等もクリアした真っ白のシートの状態で保存してもファイルサイズは変わらずでした…
当然隠れシートやリンクも確認し、ファイルの診断も実施済みです。
上で教えて頂いたとおり、新しいファイルに値で貼り付けるかCSV変換の方法しかないのかもしれません。
0326名無しさん@そうだ選挙にいこう
垢版 |
2020/03/06(金) 05:38:42.91
エクセル2007(12.0.6787.5000)SP3 MSO(12.0.6785.5000)
ウインドウズ10 Home

カーソルがピコピコ点滅してしまいます、欄外をクリックしたりすると直ったりもします。
頻発してしまうので改善方法ありませんか?
0327名無しさん@そうだ選挙にいこう
垢版 |
2020/03/06(金) 05:55:49.61
>>323
xlsxなら、拡張子をzipにして解凍。
どのファイルの容量が大きいか見るとか。
0335名無しさん@そうだ選挙にいこう
垢版 |
2020/03/07(土) 08:37:25.51
win7 excel14

複数ページを含むシートで設定した改ページに合わせて、余白まで目一杯、均等に使うように行の高さを大きくする方法はありませんか。
そういうコマンドが見つからなかったので、ページレイアウトと改ページプレビューを行き来しながら
対象となる行の範囲を選択して行の高さを大きめに指定しておいて改ページの青線を移動、としたら、
・ページレイアウトで、入力した数値の1/2になる(2倍を入れましたが)
・フォントが小さくなる 再指定しても大きくならない
・紙幅的には平気なはずなのに「選択した列幅はページ幅を超えています」
でうまくいきません。
0339名無しさん@そうだ選挙にいこう
垢版 |
2020/03/07(土) 14:37:52.22
家でExcelを利用して、添付画像のような服用・残薬記録を作っています
服用記録には飲んだ時間を残薬記録には残り錠数や本数を入力しています
これら二つの表を組み合わせて、服用時間を入力すると、残薬表から決まった錠数が減るようにするためには
どのような関数を用いればよいでしょうか?

OS:windows10
Excel2007
VBAは使えません
VBAでの回答は可能

https://dotup.org/uploda/dotup.org2081489.jpg
0343名無しさん@そうだ選挙にいこう
垢版 |
2020/03/07(土) 21:31:51.45
>>339
当方、Windows10+Excel2010です。
1日分の表がどのように続くのかがわからなかったので、縦方向に並んでいるものとして作ってみました。
https://dotup.org/uploda/dotup.org2081778.png
途中で服用する薬の種類が異なっても対応できるようになっています。
(B8の薬とB15、B22の薬が異なることに注目)
1日あたり必要な行数は対象者によって異なると思いますが、増減もできます。
=SUMPRODUCT((Sheet1!$B$2:$B$22=$B2)*(Sheet1!C$2:C$22>0))
の、$B$2:$B$22は列名に$あり、C$2:C$22には$なしは意味があります。
集計シートのC2セルに計算式を入力し、これを必要な範囲に複写するだけでいいようにするためです。
Sheet1の表を拡張(日数を増やす)する場合は、上記計算式の $B$22 と C$22 の行の数字を
増やすだけです。(必ず同じ数字にすること)
集計シートのC、D、Eの各列は件数の集計なので、1回あたり服用する数量を乗じて実際の数量を
算出してください。
0344名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 13:30:52.90
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
Worksheet_BeforeRightClickイベントでThisWorkbook.Closeを使い、このブックを閉じる処理を行ったところ
ブックは閉じるのですが、閉じた後に新しいブックが勝手に立ち上がります。
Application.Quitだと問題なく閉じるのですが、すべてのブックが閉じてしまいます。
対処方法はないでしょうか?
0346名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 14:52:52.60
>>344
2019で試しにやってみたら挙動がおかしくなった
一回目は動いたんだけど、2回目からはマクロが動かない。再起動したら一回目に戻る
恐らく内部的に
・右クリック
・コンテキストメニューの出現
はセットになっているけど、そこに割り込んだからおかしくなってる・・・ような気がする
個人的にこのコードは避けた方がいいかな、とは思う

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ThisWorkbook.Close
End Sub
0347名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 15:13:13.88
>>345
何もやっていませんね
>>346
SelectionChangeイベントでも再現し、原因がわからない状態でネットで色々調べてみたのですが、
関連する記事はなく途方に暮れておりました。

別の方法考えるしかないみたいですね…
0348名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 15:19:53.88
>>347
イベント内ではなく普通のプロシージャ内でThisWorkbook.Closeするといけるんじゃないか
けど自分を閉じる処理はできるだけ避けた方がいい
0350名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 15:26:19.67
>自分を閉じる処理はできるだけ避けた方がいい
これには同意
昔のExcelはいいんだけど、今は閉じた後もずっとバックヅラウンドで残っているから色々と変になりやすいと思う
0351名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 18:03:00.03
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019

最近のアップデートなのか、
いつのまにかExcelのウィンドウバーのファイル名がクリックできるようになってたのですが
これオフにすることできますか?
0354名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 23:19:11.22
indirectでシート参照をセルから指定する場合、指定シート名に記号を含んでいてシングルコーテーションをつけない状態だとエラーになるので、基本は"'"で囲む、ということ自体は暗記したのですが、なぜ記号だとこのエラーが出るんでしょうか?
記号は文字列ではないからならば、シングルコーテーションではなくてダブルコーテーションなのでは?などとメカニズムを理解できていません。
暗記すれば済む話ですがもし理由説明できる方いたらご教示いただけませんか。
0356名無しさん@そうだ選挙にいこう
垢版 |
2020/03/08(日) 23:38:54.59
>>354
知ってるやつはいないと思うし、考えるのは時間の無駄だが・・・

まずシート名に半角スペースや記号が使える。この状態だと何かで囲む必要がある
※半角スペースも演算子

セルの内容が
="
で始まる場合その部分は文字列とでも定義しているのだろう
なのでシングルコーテーションでも使ってシート名と定義しているんじゃないかね

この理屈に反論しても無意味だぞ、今適当に考えただけだから
後は自分で考えよう。

考えても意味の無いことだと結論が出れば合格だ
0358名無しさん@そうだ選挙にいこう
垢版 |
2020/03/09(月) 01:48:30.66
>>353
そうですタイトルバーでした。
あのクリックって消す事できないんですね・・・ウィンドウを移動するときにタイトルバーをドラッグするんで
いちいちクリックされるのがめんどうなんですよね
0360名無しさん@そうだ選挙にいこう
垢版 |
2020/03/09(月) 07:13:49.75
365使ってるけどどっかのアップデートからブック名クリックできるようになってるよ
OneDrive使ったバージョン管理やらせたいみたいね
非表示にはできないから避けるしかない
0362名無しさん@そうだ選挙にいこう
垢版 |
2020/03/09(月) 11:15:28.98
新規ブックで未保存の場合はクリックできないとか、一応マトモにはできてるな
頼まれても使わんけどw

>>358
何も表示されてない部分をドラッグすれば問題なし
もしかして、タイトルバーの中央でないとドラッグできないとか思ってる?
0363名無しさん@そうだ選挙にいこう
垢版 |
2020/03/09(月) 16:42:59.18
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel16
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

グラフの範囲を2つの入力されたセルの文字列間の間に設定することは可能でしょうか?
たとえば、A列にロットナンバー、B列に製造量とした場合、適当なセル(C1とかD1)にロットナンバーを入力し
C1とD1のロット間のグラフを作成するなどです。

グラフではなく、普通の計算処理(例えば平均や最大)などはMatch関数でできるのですが
グラフの範囲だとどうもうまくいきません。
計算用に一時的に特定のセルに出力は可能です。

どなたかご教示をお願いいたします。
0365名無しさん@そうだ選挙にいこう
垢版 |
2020/03/10(火) 01:40:21.78
【1 OSの種類        .】 Windows10
【2 Excelのバージョン  .】 Office365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否 .】 否

以下の関数をつかった検索・抽出でこのような作業は可能かわかる方おりましたら
ご教示いただけますでしょうか?
検索し、複数条件抽出などでみてみましたが知識が乏しく適切な回答が
みつけられず質問させていただいた次第です。
 
 ・ ある品名がデーターシートのa行へ記載
 ・ 同じ品名に対応する仕入れ先がb行へ記載 
 
これを出力シートのa行へ重複を削除して表記し
対応する複数の仕入れ先をb行の1セル内に表記をする(仕入れ先が複数の場合は、仕入れ先と仕入れ先の間に/で区切りをいれ、表示する

 データーシート
A1 : 洗濯機 B1 :XXXX商事
A2 : 洗濯機 B2 :YYYYコーポレーション
A3 : 洗濯機 B3 :XXXX商事
A4 : 冷蔵庫 B4 株式会社XXXX
A5 : 冷蔵庫 B5 :ZZZZ会社

  出力シート
A1:洗濯機 B1 :”XXXX商事/YYYYコーポレーション*
A2:冷蔵庫 B2 ; “株式会社XXXX/ZZZZ会社”

なんとかお願い致します。
0367名無しさん@そうだ選挙にいこう
垢版 |
2020/03/11(水) 18:39:02.15
無職期間中にExcelをおさらいしておこうと思い勉強中で、よく分かるマスターのMOSExcel問題集を一通り終えました。
もう少しレベルアップして他の関数やピポットテーブル等も学びたいのですが、おすすめのテキストがあれば教えて下さい。
できれば実務に近い例題等があるものがいいのですが…。
0373名無しさん@そうだ選挙にいこう
垢版 |
2020/03/11(水) 20:27:03.14
条件付き書式でAND・INDIRECT・ADDRESS・ROW・COLUMNが併用できないのは何故?
掛け算で代用すればいいってのは何となくわかるけど。
一体何が返ってきてるんだ?
0374名無しさん@そうだ選挙にいこう
垢版 |
2020/03/11(水) 20:42:05.53
↑やっぱ掛け算で代用できる理由もわかんないわ。

Int(True And True) = -1
Int(True * True) = 1
Int(WorksheetFunction.And(True, True)) = -1

掛け算だとTrueにならん。
0376名無しさん@そうだ選挙にいこう
垢版 |
2020/03/11(水) 20:57:09.28
>>373>>374
ExcelのTRUEは数値にすると1
VBAのtrueは数値にすると-1

Sub foo()
Debug.Print Int(True + 3) '2になる
End Sub

確かVBAの方は16進数でFF、11111111になるはず
こっちの方が正しいとかなんとか
0379名無しさん@そうだ選挙にいこう
垢版 |
2020/03/11(水) 21:23:42.71
でも条件付き書式の謎は残るわ。

INDIRECT・ADDRESS・ROW・COLUMN併用 True
INDIRECT・ADDRESS・ROW・COLUMN併用で掛け算 True
AND(普通にセル指定,普通にセル指定) True
AND・INDIRECT・ADDRESS・ROW・COLUMN併用 Trueではない何か
0382名無しさん@そうだ選挙にいこう
垢版 |
2020/03/11(水) 23:05:33.89
ATAN2    何を言っているのかわからない関数
SUBSTIUTE SUBSTIUTEって言いたいだけの関数
CheckMatrix ヘルプがありませんって何やねん。
0388名無しさん@そうだ選挙にいこう
垢版 |
2020/03/12(木) 23:35:50.96
>>387
=AND(INDIRECT(ADDRESS(ROW()+1,COLUMN()))=INDIRECT(ADDRESS(ROW(),COLUMN())),INDIRECT(ADDRESS(ROW()+1,COLUMN()+1))<>INDIRECT(ADDRESS(ROW(),COLUMN()+1)))

単純に上下の差異を見るだけ。
ある列の上下が同じかつ別の列の上下が違うなら書式変更っていう。

これ自体は、掛け算を代用して解決したから良いんだけど、
理屈がわからないのがモヤってる。
0391名無しさん@そうだ選挙にいこう
垢版 |
2020/03/13(金) 11:10:21.96
>>388
ANDの引数の片方をTrue にしてもうまく動かないね
対象セルの隣で列数を補正して同じ数式を入力しても期待通りになったから、記述は間違ってないはず

公表されてる文字数とかネスト数の制限には遠く及ばないけど
ROW COLUMN INDIRECT の様な、負荷の大きそうな関数をネストして使ってるから
そのあたりが条件付書式に使える限界なんだと思うぞ
0392名無しさん@そうだ選挙にいこう
垢版 |
2020/03/13(金) 11:53:58.30
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 はい(勉強中)
【4 VBAでの回答の可否】 可
各月毎のシートを12ヶ月分(名前、売上、手数料、支払額でテーブル)を作っています。
月別で人数が変化するのでピボットで名前(行)だけのテーブルにしてvlookupで名前参照から各月毎のデータを取得して
1年間の月別のデータを作っています。
   売上      手数料
名前 1月 〜 12月 1月〜12月
みたいな感じでやっています。
この場合名前が増えた場合自動でvlookupを追加したい場合はvbaでピボットテーブルの行数分vlookup関数をコピーさせるのがよいでしょうか?
自分だけで使うならそれでいいのですが入力する人は月毎のシートのみいじる形にしたいので良いアイデアがあれば教えてください。
   売上      手数料
名前 1月 〜 12月 1月〜12月
新規 上の行コピー
0395名無しさん@そうだ選挙にいこう
垢版 |
2020/03/13(金) 14:07:29.32
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 触り程度
【4 VBAでの回答の可否】 自信無し…

Aに入力した数字がBの金額と掛け合わされてCに表示させる物を作りたいのですが可能でしょうか?

Aに販売した商品の個数、Bに金額、Cに売り上げみたいな感じです。
宜しくお願いします。
0396名無しさん@そうだ選挙にいこう
垢版 |
2020/03/13(金) 14:16:41.76
自己解決しました。すみません。
0397名無しさん@そうだ選挙にいこう
垢版 |
2020/03/14(土) 10:55:17.76
390,391,393
(レスアンカーがおかしいって言われるので数字のみ)

色々ありがとう。
@はわからなかったけど(入れても消える)、Nでも出来た。

=AND(N(INDIRECT(ADDRESS(ROW()+1,COLUMN())))=N(INDIRECT(ADDRESS(ROW(),COLUMN()))),N(INDIRECT(ADDRESS(ROW()+1,COLUMN()+1)))<>N(INDIRECT(ADDRESS(ROW(),COLUMN()+1))))
0401名無しさん@そうだ選挙にいこう
垢版 |
2020/03/14(土) 19:39:38.87
こんな感じで、たまに計算式を壊すやつが出てくる、メンテナンスが物凄く面倒な表の管理を任されて、
IFとかINDIRECT使って、全部のセルを同じ計算式にしたことあるわ。
誰かが壊してもすぐ直せるから。

  1月 前月比 2月 前月比 ・・・ 上期 7月 前月比 ・・・ 下期 ・・・ 平均 合計
A
B
C
小計
D
E
小計
 :
合計
0402名無しさん@そうだ選挙にいこう
垢版 |
2020/03/14(土) 20:04:05.90
>>392
月ごとにシートを分けないで、月の列を1列増やして、1つのシートにする
何をやりたいか、いまいち見えてこないけど
多分、vlookupなんて使わないで、ピボットテーブルの機能だけで出来るような気がする
0407名無しさん@そうだ選挙にいこう
垢版 |
2020/03/15(日) 00:36:36.74
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A1に特定の文字"削除"と入れた時に、B1とC1の文字列が赤くなるようにしたい。
一行だけなら条件付き書式で出来ましたが、
A列に特定の文字"削除"を入れた時に、その当該行のC列とE列を赤くしたい場合は
どうすればできますか?
0408名無しさん@そうだ選挙にいこう
垢版 |
2020/03/15(日) 01:06:58.13
【1 OSの種類         .】 Windows 10
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

資格試験の問題集を何度も解くつもりで、その際の情報を科目ごとに集計したいのです。
1科目につき1シートで記録し、A列から順にA日付、B問題番号(文字列)、C成否(〇か×にしてます)、D間違えの理由(自由記載)
としています。
同じシートの右側に各問題ごとの集計表を作ってます。F〜J列に、F問題番号、G訓練回数、H正答数、I正答率、J最終訓練日を表示させたいのですが、
最終訓練日を出すことが出来ません。
=DMAX(A:D,A1,BB=F5)などと入力してエラー出て困ってます。わかる方いらっしゃいましたらお願いします。
0410407
垢版 |
2020/03/15(日) 01:31:46.67
すみません自己解決しました
0412名無しさん@そうだ選挙にいこう
垢版 |
2020/03/15(日) 09:11:49.36
>>408
老婆心ながら余計なこというけど、
正当率とか忘却曲線とか余計なことかんがえてる間に
問題集進めたほうがいいと思うやで

そういうのは裏で自動的にやってくれるアプリに任せたほうがええ
時間かけて自分で手作業でエクセルでやるもんじゃないよw
0413名無しさん@そうだ選挙にいこう
垢版 |
2020/03/15(日) 18:21:01.01
ピボットテーブル初心者なのですが、リレーションシップを使いたいのに、データタブ下にリレーションシップのボタンが出て来ません(><)
本の説明では統合ボタンの下に出ているはずなのですが、表示されていません
リボン内の表示の設定が違うのでしょうか
わかる方ぜひお願いいたします
0416名無しさん@そうだ選挙にいこう
垢版 |
2020/03/15(日) 19:29:30.11
>>415
そう、それです!
ひとつひとつのアイコンが大きくてそのひとつ上の統合までしか表示されないんです。
Macなんですが関係ないですよね
0417名無しさん@そうだ選挙にいこう
垢版 |
2020/03/15(日) 19:32:07.91
リボンのユーザー設定で左側の全てのタブの中にもリレーションシップがなくて、このエクセルの中にそもそもリレーションシップが搭載されていないのか、も調べても出てこなくて途方に暮れています
0418416
垢版 |
2020/03/15(日) 20:02:36.38
どうやら2016 for Macではリレーションシップは使えないようです 泣
415さんありがとうございました
お騒がせしました
0427名無しさん@そうだ選挙にいこう
垢版 |
2020/03/16(月) 15:21:46.57
https://soratobu-kabuyu.com/ana/
こんな感じで、各サイトの価格をリアルタイムに取得したいです
クリックしたらサイトに飛べるようにするには「ハイパーリンク」を使えば出来るようになりました
因みに、エクセルじゃなくてもそういうことができるソフトが他にあれば大丈夫です
どうやるのですか?教えて下さい。

【1 OSの種類】 Windows10
【2 Excelのバージョン】 Excel2019
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】否
0428名無しさん@そうだ選挙にいこう
垢版 |
2020/03/16(月) 18:55:43.67
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

い1 ろ1 は1 い2 ろ2 は2 い3...

と連続しているデータがあり、[は]が"--"の時だけ[い]と[ろ]を着色したくて
以下のように条件付き書式をかけましたが上手くいきませんでした

 =OR(AND(MOD(COLUMN(),3)=1,OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,2)="--"),AND(MOD(COLUMN(),3)=2,OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,1)="--"))

そこでAND()の中身を個別に設定してみました。

[い]に着色成功: =MOD(COLUMN(),3)=1
[い]に着色成功: =OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,2)="--"
[い]に着色失敗: =AND(MOD(COLUMN(),3)=1,OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,2)="--")

[ろ]に着色成功: =MOD(COLUMN(),3)=2
[ろ]に着色成功: =OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,1)="--"
[ろ]に着色失敗: =AND(MOD(COLUMN(),3)=2,OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,1)="--")

また、いずれの条件も、[い]や[ろ]のセルに直接入力して確認するとTRUEになります。
式は間違っていないはずなんですが、AND()に入れて条件付き書式の条件にしてやると上手くいきません
まとめて設定したいので、着色成功している設定を列ごとに入れてやる方法はとりたくありません

どこが間違っているのか、どなたかお分かりになりますか?
0429名無しさん@そうだ選挙にいこう
垢版 |
2020/03/16(月) 19:28:55.21
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

表1
氏名 性別
表2
氏名 数字
表3
性別 数字の集計

1, 表3で表2の数字を集計したい
2, このとき、表1で男となっている氏名のみ対象にする

IFやSUMIFを使ってみましたが、条件の指定が上手く行かず分からなくなりました
0430名無しさん@そうだ選挙にいこう
垢版 |
2020/03/16(月) 20:22:04.40
>>429
表1または表2に作業列を追加するのはだめですか?
作業列ができさえすれば、性別と数値がひとつのシートに表示される状態となるので、あとは簡単に集計できると思います。
0431名無しさん@そうだ選挙にいこう
垢版 |
2020/03/16(月) 21:04:50.69
作業列追加できるなら表2不要で表1に数字列入れればいいだけじゃん
わざわざ分けてるってことはそれが出来ないんじゃないのか
0433名無しさん@そうだ選挙にいこう
垢版 |
2020/03/17(火) 01:11:25.73
>>411
ありがとうございます。入力してみます。

>>412
老婆心ありがとうございます。その通りだと思います。。。
頑張ってる感出さないと潰れそうな気がして、逃避してましたね。
せっかく教わった知識は教養として記録しといて、勉強します
0435名無しさん@そうだ選挙にいこう
垢版 |
2020/03/17(火) 16:06:03.17
>>429
シート分けるのが面倒なので一つのシートで組んだ例
表1-A1:B30  表2-D1:E10 A51-"男" の場合、
=SUM(($A$2:$A$30=TRANSPOSE($D$2:$D$10))*($B$2:$B$30=$A51)*TRANSPOSE($E$2:$E$10))
配列数式なのでCtrl+Shift+Enter
で多分いけると思う

でも、計算量が馬鹿でかくなるから、表が大きくなった場合に実用速度におさまるかは知らない
名前の重複がNGなのもあって、可能なら、表1と表2の名前の並びは共通にした方がいいと思う
0437名無しさん@そうだ選挙にいこう
垢版 |
2020/03/17(火) 23:30:05.77
>>423
xmatchとかってもう使えるんだっけ?
0438名無しさん@そうだ選挙にいこう
垢版 |
2020/03/18(水) 12:52:36.90
Office365が インサイダーチャンネル

LETの発表
https://techcommunity.microsoft.com/t5/excel-blog/announcing-let/ba-p/1233572

数式内で同じ式を複数回繰り返す必要があったり、メガ数式を作成したり、
数式の一部を再利用して消費しやすくしたいと思ったことはありませんか?
LET機能の追加により、次のことが可能になりました!
0441名無しさん@そうだ選挙にいこう
垢版 |
2020/03/18(水) 22:07:43.84
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

勤務時間の入力についての質問です
交代制のパートさんが6人いる中で、夜勤の際の各勤務時間を、出勤人数が3人以上の日は5時間、2人以下の日は8時間と表示したいのですが、時間の欄はどのように式を入力したらいいでしょうか?
表は以下のようにしたいと思っています
    1日   2日
1名前  夜   昼
     8h   8h
2名前  朝   夜
     8h   5h
3名前  昼   夜
     8h   5h 
4名前  昼   夜
     8h   5h
5名前  夜   朝
     8h   8h
6名前  昼   昼
     8h   8h
ややこしいですが教えて頂けると幸いですm(__)m
0442名無しさん@そうだ選挙にいこう
垢版 |
2020/03/18(水) 22:51:37.88
>>441
どこか、一番上か一番下の行に、その日の夜の人数を入れるわけにはいかない?
=COUNTIF(B2:B999,"夜")
みたいな式で数えられるんだけど、それができないとめちゃくちゃ面倒になると思うんだわ
0446名無しさん@そうだ選挙にいこう
垢版 |
2020/03/18(水) 23:29:00.12
6人固定バージョンを作ってみた
この表の1行目=日付、2〜3行目が一人目、A列が名前、B列が1日になってるとして
B3=IF(AND(B2="夜",SUM(B$2="夜",B$4="夜",B$6="夜",B$8="夜",B$10="夜",B$12="夜")>=3),"5h","8h")
あとはコピペ
0447名無しさん@そうだ選挙にいこう
垢版 |
2020/03/18(水) 23:44:29.85
レスありがとうございます!
パート従業員は6名固定で、休が入ることもあります
>>446さんが式を載せてくださったので、これでやってみようと思います!またわからないことがあったら質問させてもらうと思うので、その際はよろしくお願いいたしますm(__)m
0453名無しさん@そうだ選挙にいこう
垢版 |
2020/03/20(金) 11:08:45.28
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

16384列も要らないんですけど、10列くらいに出来ませんでしょうか。
テーブル化するとか、印刷範囲や表示固定で誤魔化すのはなしで。
0456名無しさん@そうだ選挙にいこう
垢版 |
2020/03/20(金) 12:32:38.84
>>453
作業に必要な10列だけセルのロックを解除してからシート保護したら?
シートの保護の際、「ロックされたセル範囲の選択」のチェックを外しておくこと。
これで「ロックされたセル」にはカーソルが行かない。
0459名無しさん@そうだ選挙にいこう
垢版 |
2020/03/20(金) 19:27:26.36
やっぱ普通に減らすのはダメですか。。。

一体どうやってるのか、
時々、全く使ってないセルを使ったことにして、
容量を増加させちゃう人がいるんですよね。
0462名無しさん@そうだ選挙にいこう
垢版 |
2020/03/23(月) 22:08:37.47
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

EXCELで月齢を計算する方法を教えて下さい。
0467名無しさん@そうだ選挙にいこう
垢版 |
2020/03/23(月) 22:44:45.82
>>464
セルに入力した日付データから西暦年を取り出すYEAR関数、月を取り出すMONTH関数、
日を取り出すDAY関数、余り(剰余)を求めるMOD関数、条件分岐であるIF()関数を組み
合わせればできますよ。これらの関数を使ったことはありますか?
0471名無しさん@そうだ選挙にいこう
垢版 |
2020/03/23(月) 23:32:16.10
>>469
江戸時代末期から明治にかけていろいろなカラクリを作った田中久重翁が造った
「万年時計」は、歯車による回転数の変換だけで地球から見た太陽と月の動きと
満ち欠けを再現した。田中久重=東芝の礎をつくった方です。
NHKの番組「ハイビジョン特集 万年時計 江戸時代の天才が生んだ驚異の機械時計」
を見てただ驚くばかりでした。動画も含めいろんな資料があるのでどうぞ。
スレ違いスマソ。
0477名無しさん@そうだ選挙にいこう
垢版 |
2020/03/25(水) 20:57:01.60
何かもっと違うのがありそうな気がするけどね。

子のオートフィルで干支が出るとか(多分ここで教えてもらった)、
Weekday使わなくてもText aaaだけで曜日が出るみたいなのが。
0479名無しさん@そうだ選挙にいこう
垢版 |
2020/03/26(木) 01:53:04.72
【1 OSの種類         .】 Windows 7?
【2 Excelのバージョン   】 わかりません
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Aの状態からBに整える作業を複数行っているのですが
一番効率が良いと思われる手順を教えていただきたいです
画像だけでは分かり辛いので文でも書きます

【作業】
1,A1の行を削除する
2,A2に「計」を入力する
3,表の数字が入ってる欄の全ての空白に0を入力する
4,2行目の計にそれぞれの列の合計を入力する(SUM値の状態ではなく文字の状態で張り付ける)

特に3と4の効率のいい方法を知りたいです
3は範囲をドラッグ選択してctrl Hで空白を0に置換
4は数字の範囲をドラッグで全選択してshift alt =でSUM、下に出た結果をコピーして削除
上の計にctrl shift vで値だけ貼り付けという風にしていますが
一発で計算結果を上の計に表示させることなどは出来ないのでしょうか?

A,作業前
https://imgur.com/N5Fiwpm.jpg
B,作業後
https://imgur.com/nh1tw6f.jpg
0481名無しさん@そうだ選挙にいこう
垢版 |
2020/03/26(木) 07:11:20.16
合計を選択したい範囲(C2:O2)をドラッグして選択
shift+alt+=でSUM表示
1列目の数字部分(C3:C13)をドラッグしてSUMの引数に指定してctrl+enter
とか?
0483名無しさん@そうだ選挙にいこう
垢版 |
2020/03/26(木) 08:42:57.84
>>479
4.
あらかじめ、=SUM(C3:C10000) を s にでも単語登録 IMEはONにしておく
c3で、s スペースと入力
c3を表の右端までオートフィル
そのまま、選択範囲の端を右ボタンで掴んで、その場にドラッグして値のみ貼付け
0487名無しさん@そうだ選挙にいこう
垢版 |
2020/03/26(木) 21:54:34.39
マクロの記録
最初は「何だ、マクロって意外と簡単に出来るんだな」と思い「これだけでも何とか出来るかな?」と思ったが、
すぐにその不便さと融通の効かなさを痛感し、
気が付けばたまに「えーと、これってどういうコード書いたらいいのかな?」って時に少し調べるくらいでしか使わなくなっていた

のって俺以外にもいるのかな?
0488名無しさん@そうだ選挙にいこう
垢版 |
2020/03/26(木) 22:02:45.08
自分も最初はマクロって、マクロの記録でできたコードを部分的に変更して完成させるのが一般的な使い方かと思ってた。
0492名無しさん@そうだ選挙にいこう
垢版 |
2020/03/26(木) 22:58:58.57
マクロの記録を起動してキーボードガチャガチャってやってコード生成しまくる遊びを考えた
結果は残念な事に・・暇な人は試してみて
0496名無しさん@そうだ選挙にいこう
垢版 |
2020/03/27(金) 10:48:16.29
>>494
早いし楽、それに変数に条件分岐にループという重要な要素はマクロの記録では出来ないし
セルA1に100と入力するのもあんな回りくどいコードよりも普通に
Range(′′′A1′).Value=100
と書く方が冒頭のそれだから
0497名無しさん@そうだ選挙にいこう
垢版 |
2020/03/27(金) 17:40:19.35
経年データで文字の数と地域の名前ごとにまとめるのってどうしたらいいんだ?
例えが下手で申し訳ないんだが
県 名前   果物(1月) 果物(2月)
千葉 太郎  りんご   りんご
千葉 あいこ  みかん   りんご
千葉 よしこ  りんご   みかん
茨城 次郎  りんご   ポンカン
茨城 とめ もも     みかん
茨城 三郎  ポンカン  みかん




ってなってるのを、
     りんご みかん ポンカン
千葉1月:2   1    0
千葉2月:1   3    5
千葉3月:8   1    2



茨城1月:1   1    1

みたいな表にしたいんだが1週間ググッてもわからん
0498名無しさん@そうだ選挙にいこう
垢版 |
2020/03/27(金) 17:49:07.17
SUMIFSでいけんか?
0500名無しさん@そうだ選挙にいこう
垢版 |
2020/03/27(金) 22:08:29.63
とりあえず、2つめの表、月と果物の種類 行と列を入れ替えた方がいいと思う
あと、1つめの表、果物()は外した方がいい
表の構成と表記はなるべく一致させないと、余計な手間が増えるだけだよ
0504名無しさん@そうだ選挙にいこう
垢版 |
2020/03/27(金) 23:15:19.95
>>497
最初からDB的に設計するのが一番。

県 名前 果物(1月) 果物(2月) じゃなくて
県 名前 年月 果物 にする。

りんご みかん ポンカン はどうするのかって?
後からピボットテーブルにすれば?
0505名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 15:27:44.86
>>496
ループ処理とかは自分で書くけどあんまりVBAに慣れてないのでマクロの記録に頼っちゃう
元プログラマだからやってたのと結構違うのは戸惑うっていうかよくわからないっていうか…

今も単なるループで指定枚数ずつシートを順番に印刷してても
エラー出ずに終わってるのに初めの2シートしか印刷されないとかでなんで?になってる
PrintOutをMsgBoxに変えて表示してみると全部出てきてる
さっき印刷されたシートの枚数を0枚にしてみると今度はその次の2シートが印刷されてそのあとは無視だし
0506名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 16:02:56.14
>>505
>元プログラマ
vbaは結構異端児なので、そのプライドは捨てた方が良いと思う
vbaって結局はExcel用のマクロで、プログラムが正しくてもExcelの仕様に振り回される事がかなり多いからな

>なんで?になってる
印刷範囲か何かだと思う
マクロの記録をしつつ、手作業で1シートずつ印刷してみてテストすると何か分かるかもしれない
わからないかもしれない
0507名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 17:13:26.44
>>505
プログラマの発言とは思えん
素人なら知ってる言語しかできないってのはわかるが、職業プログラマなら臨機応変に使えるもんだがな
0512名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 18:43:28.83
>>511
うん、今はvbaは素人がプログラミングやってるんだって
95が出た当初はプログラマが外注で請け負ってたとは思うけどね
玄人だけのプログラミング談話がしたいならプラグラミング板かプログラマ板に行くと良いゾ
0513名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 20:01:05.64
>>512
現在進行系で素人の趣味レベルから開発職に依頼するレベルまであるんだゾ
よく知らないことを想像で語らない方がいいゾ
プロを名乗るわりに技術が素人っぽいってつっこみが「玄人だけのプログラミング談義がしたい」にすり替わってるあたり理解力もあやしいゾ
謎の95への拘りも捨てたほうがいいゾ
0514名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 20:31:20.62
チェックデジットで嵌まってます
助けて下さい
978-4-8222-7267-8
手書き・エクエル・電卓・Web計算サイト全てで6と出ます
バーコードで読むと8で合ってるし検索でも8と出ます
どっちが合っているのでしょう?
0515名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 20:48:05.79
>>513
すいません、素人です
マウンティングしたくて嘘つきました、すいません!
あと、教えて下さい。

>謎の95への拘りも捨てたほうがいいゾ
すいません、また聞きです
cobolの凄腕プログラマが→儲かるvba
へと聞いていました
そうでもないのでしょうか

>プロを名乗るわりに技術が素人っぽいってつっこみが「玄人だけのプログラミング談義がしたい」にすり替わってるあたり理解力もあやしいゾ
すいません、丸投げしました
でもあっちいってボロカス叩かれると急成長するというのが経験上の理由です
0519名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 21:26:08.38
>>518
>別の式があるのでしょうか
知らない

一番正しいのはISBN協会だから、そこに聞いてくれ
wikipedisが間違ってるなら、wikipediaを書き直してほしい。(そのためのwikipedia)

まぁ恥ずかしいかなんかなら、ここで報告してもらえれば俺がwikipedia修正しとくよ
0520名無しさん@そうだ選挙にいこう
垢版 |
2020/03/29(日) 21:34:41.80
>>514,517
518のwikipediaに載ってる通りに計算してみました。
9 × 1 =  9
7 × 3 = 21
8 × 1 =  8
4 × 3 = 12
8 × 1 =  8
2 × 3 =  6
2 × 1 =  2
2 × 3 =  6
7 × 1 =  7
2 × 3 =  6
6 × 1 =  6
7 × 3 = 21
各行の積の和は112なので、10で割った余りは2
10 − 2 = 8 がチェックデジットになりますよ。
筆算で6になるという計算は具体的にどうやったのでしょうか?
0524名無しさん@そうだ選挙にいこう
垢版 |
2020/03/30(月) 14:14:41.86
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

フォームコントロールでボタンを横並びで4つ作成し、それをきれいに整列させたいのですが、
ドラッグしてもシフトキーを押しながらクリックしてもフォームボタンを複数選択することができません。
何か特別なやり方がありますか?
0525名無しさん@そうだ選挙にいこう
垢版 |
2020/03/30(月) 15:37:45.44
>>524
シフト+クリックかドラッグで合ってる
ワークシートのセルが編集状態になってない?
どうしても原因がわからない時は保存してExcelを終了して再起動
0530名無しさん@そうだ選挙にいこう
垢版 |
2020/03/31(火) 12:28:01.83
すみません、VBA初心者ですが上手くなりたいと思います。

上手くなるための順序を教えていただきたいです。例えばこの本の通りにやって、次はこれをしてなど。。。

実体験なども含めて教えてもらえるとありがたいです。
0531名無しさん@そうだ選挙にいこう
垢版 |
2020/03/31(火) 12:47:28.61
>>530
VBAはできることが多すぎて、全部を知り尽くしている人はあまりいません
みんなが自分に必要なことだけ+αの予備知識を覚えている感じです
本か入門サイトで基礎を覚えたら、あとはひたすら実践あるのみ、です

とりあえず検索上位に出てきた入門サイト
https://www.officepro.jp/excelvba/

一通り勉強したら、次は何がやりたいか、どこでひっかかってるか質問して下さい
0533名無しさん@そうだ選挙にいこう
垢版 |
2020/03/31(火) 19:55:28.66
>>530
正直どれだけ本読んでも実際に作らなきゃ技術は付かない
とりあえず興味湧いた初心者向けの本でもサイトでもどれかやり切って、Excelでこういう動きをさせたいって思ったら調べながら作って内容を理解する積み重ね
0535530
垢版 |
2020/04/01(水) 05:24:47.57
みなさんありがとうございます。Excelは関数少しとピボットテーブルを触れる程度のレベルです。それらも分からなければググって解決出来ています。VBAも同じ要領ですすめてみたいと思います。
0536名無しさん@そうだ選挙にいこう
垢版 |
2020/04/01(水) 08:39:08.45
>>534
何から手を付けようか悩む時は、高頻度そして手間の掛かる作業から優先的にやるのがいいな
面倒くさいと感じるのは効率化の第一歩、老害の「面倒などとほざいてたら仕事にならん(キリッ!)」はもはや精神論ですらない、思考停止も甚だしいってヤツだな
0543名無しさん@そうだ選挙にいこう
垢版 |
2020/04/02(木) 09:08:33.69
セルに〇〇A型や□□A型という文字列があったとします
セル内に「A型」が含まれてれば100と返す数式を教えて下さい
0545名無しさん@そうだ選挙にいこう
垢版 |
2020/04/02(木) 09:49:08.04
>>544
出来ました有難う御座いました!
0546名無しさん@そうだ選挙にいこう
垢版 |
2020/04/03(金) 07:14:26.03
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるbゥ    .】 いb「え
【4 VBAでの回答の可否】 否

エクセルで家計簿を作っています
13個シートを用意して1月から12月専用シートと13個目は年間の比較用シートにしています
例えば年間比較シートで雑費という費目で毎月の平均値を求めたいのですが

現在は
費目  金額  月平均
雑費  ***** *****
金額セルは各シートの雑費を参照して1つ1つ単純に+で合計値を出しています
月平均は上の合計値を12で割っていますが、今だと5月以降は0なので当然今現在の正確な平均値が求められません

そこでAVERAGE関数で上手く出来ないかと思ったのですがなにかいい方法はないでしょうか?
0548名無しさん@そうだ選挙にいこう
垢版 |
2020/04/03(金) 08:14:24.27
割る数字を12と固定しないで関数使って1月から12月までのどこかのセルのデータ数をカウントするようにすればいいかと
0551名無しさん@そうだ選挙にいこう
垢版 |
2020/04/03(金) 17:24:01.75
【1 OSの種類         .】 MacOS 10.15.4
【2 Excelのバージョン   】 Excel Version 16.16.20
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

初心者ですが、よろしくお願いします。

・B1のセルに年:2020
・C1のセルに月:4
・D1のセルに日:1

と入っていて、この3つのセル内の数字を組み合わせて日時(「2020年4月1日」)にして、
曜日(「水曜日」)を取得したいのですが、

=CHOOSE(WEEKDAY(B1+C1+D1),"日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日")

としてもうまくいきません。何が問題なのでしょうか?
0552551
垢版 |
2020/04/03(金) 17:57:01.21
=CHOOSE(WEEKDAY(CONCATENATE(B1,"-",C1,"-",D1)),"日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日")

とすればいいんでしょうかね…大丈夫なのかな。
0554名無しさん@そうだ選挙にいこう
垢版 |
2020/04/03(金) 18:16:43.87
Excelでは、日付をシリアル値で表現しているけど、その中身は基準日からの経過日数
でも、B1+C1+D1 じゃ、=2025 で、期待通りにはなっていないからNG
近年のExcelだと、日付文字列->シリアル値の暗黙変換ができるから、>>552 でも大丈夫だよ
でも、わざわざ日付を文字列にする必要もないし、使えない日付表現もあるから、

=CHOOSE(WEEKDAY(DATE(B1,C1,D1)), "日曜日", 〜  の方がいいよ

もう少し言うと、日付は曜日に直接変換できるし、WEEKDAY関数は基準が日曜で1になってるかどうか悩むから、
=TEXT(DATE(B1,C1,D1),"aaa")
と書くことを、個人的には勧めるよ
0556名無しさん@そうだ選挙にいこう
垢版 |
2020/04/03(金) 22:20:58.52
すみませんレス遅くなりました

>>547の方法で解決しました
ありがとうございます!
0557546
垢版 |
2020/04/03(金) 22:23:08.23
あ、>>556の質問者は>>546の者です
失礼しました
0558551
垢版 |
2020/04/05(日) 08:23:53.94
>>553-555

ありがとうございます。
0559名無しさん@そうだ選挙にいこう
垢版 |
2020/04/05(日) 14:22:38.26
参照渡しがうまくいかないのですが、何がおかしいのでしょうか?

Option Explicit

Sub main()
Dim a, b
a = 1
b = 1

Debug.Print a & "|" & b
sub_function_byval (a)
sub_function_byref (b)
Debug.Print a & "|" & b 'この部分

End Sub

Function sub_function_byval(ByVal c)
c = 2
End Function

Function sub_function_byref(ByRef d)
d = 3
End Function
0561名無しさん@そうだ選挙にいこう
垢版 |
2020/04/05(日) 14:34:06.31
sub_function_byref (b) が sub_function_byref b
かな
個別の引数をカッコで囲むと、それは「その引数だけ強制的に値渡し」というルールになるんだよ
VBAはカッコとかイコールの意味がいろいろある変な言語
0562名無しさん@そうだ選挙にいこう
垢版 |
2020/04/05(日) 14:38:04.66
サブルーチンをコールする時はカッコで囲みたいっていう場合は、
call sub_function_byref (b)
かな。
うまく動いてないって言う奴は、call使って書くと
call sub_function_byref ((b))
って書いてるのと同じ
0566名無しさん@そうだ選挙にいこう
垢版 |
2020/04/05(日) 15:39:53.22
同じフォルダ内に
@a.csv
Ab.csv
の2つを入れておく。

@のカラムは「ID」「NAME」「SEX」
Aのカラムは「ID」「AGE」
となっていて、@Aそれぞれ30000行のデータがあるとする。

Excelの「取得と変換」でこのフォルダを指定して、
「結合および読み込み」を選択すると、
@とAが結合される。

ただ、結合後のカラムは「ID]NAME」「SEX」だけで、「AGE」がない。
だから、
@をソースとしたデータの「AGE」は空欄で、
Aをソースとしたデータの「NAME」「SEX」は空欄となる。

「ID」「NAME」「SEX」「AGE」のカラムが生成されるように設定する方法ってありますか?
0571名無しさん@そうだ選挙にいこう
垢版 |
2020/04/05(日) 18:13:45.13
>>566
やりたい事が、IDをキーにした@とAの結合なら、
まず@、Aそれぞれ単独で読み込むクエリを定義して、
それらふたつをマージするクエリを定義する
0573名無しさん@そうだ選挙にいこう
垢版 |
2020/04/06(月) 21:34:09.04
例えば1015と打つと10月15日と表示されるようにするにはどうセルのユーザー定義すればいいでしょうか?
また114と打つと1月14日と11月4日の2パターン考えられるので、0114や1104(4桁)で入力しても0は表示されないようにしたいです。
0579名無しさん@そうだ選挙にいこう
垢版 |
2020/04/07(火) 14:16:55.27
「色の着いてるところに計算結果を」って、
なにかの条件で色が着いたり消えたりするのか、
そもそもなんの計算結果が入るとかが
全然類推できない表だな…

「自分だと簡素に終わりそう」と思ってても
こっちにはその表の運用の前提がわかんないから
答えようがないんだよね

文字を白くしたら色のないセルは空白っぽく見えるんでねーのw
0583名無しさん@そうだ選挙にいこう
垢版 |
2020/04/07(火) 20:21:33.19
単純な質問なんだけど、
水平スクロールバーとシートを選択するタブって
別の段に表示できない?
シートが多いファイルで水平スクロールバーが小さくなるし、水平スクロールバーを広げると、シートのタブが見づらくなる
0586名無しさん@そうだ選挙にいこう
垢版 |
2020/04/08(水) 22:32:28.27
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

入力 1 2 3・・・31というシートがあります
入力シートのA1に年月を入力すると1-31のA1にシート名(日付)に対応した曜日が出ます

A1が土曜or日曜になるシートの見出しを一括で色付けしたいのですが、それぞれのシートのA1をアクティブにしないと色が付きません
入力シートに年月を入力するだけで1-31シートの見出し色を自動的に変えるにはどうしたらいいでしょうか

今は1-31のシートに↓を入れてます
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Target = "土" Then Sheets(1).Tab.ColorIndex = 5
If Target = "日" Then Sheets(1).Tab.ColorIndex = 10
End Sub
0588名無しさん@そうだ選挙にいこう
垢版 |
2020/04/08(水) 23:03:16.28
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
if sh.name = "入力" then
for each
'全部のシート見出しをデフォルトに
next
for each
if sh.name<>”入力” then
If Target = "土" Then Sheets(1).Tab.ColorIndex = 5
If Target = "日" Then Sheets(1).Tab.ColorIndex = 10
endif
next
endif
End Sub

みたいな
0590名無しさん@そうだ選挙にいこう
垢版 |
2020/04/09(木) 07:17:25.68
A1に=A2 として、A2を書き換える
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then MsgBox ("反応") ELSE Debug.Print "違うセル"
End Sub
で、反応しないように、WorksheetChangeイベは、参照先のセルには反応しない

だから、>>587の言うとおり、実際に直接入力するシートに、全部のシート見出し色を変更するコードを書く必要があるよ
0592名無しさん@そうだ選挙にいこう
垢版 |
2020/04/09(木) 12:03:13.80
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】不可

画像をセル内に収めて保存して
画像自体も不可逆保存してファイルの容量を軽くしたいのですが
ネットで出た情報を軒並み試したのですが
・画像を【図】から挿入する
・メール送信レベルのppiまで下げる
・ファイル内のイメージを圧縮しないチェック解除
大体やることはやりましたが、一切画像が小さくならずファイル容量が軽く2桁Mを突破します
結局、手作業でペイントからファイルサイズを小さくして挿入していますが
これをexcel内で行うことは不可能なのでしょうか
助けてください
0599名無しさん@そうだ選挙にいこう
垢版 |
2020/04/10(金) 05:40:11.34
>>598
一度エクセルに貼った画像を切り取りして、形式を選択して張り付け→画(jpg)で張り付けを選ぶと
トリミングで切ったところが削除されて画質が抑えられて、スゴく軽くなるのはどういう理由で起きるの?
0602名無しさん@そうだ選挙にいこう
垢版 |
2020/04/10(金) 13:59:39.89
>>600
Sub Macro1()
  Dim k()
  Dim Dic As Object
  Set Dic = CreateObject("Scripting.Dictionary")
  With Dic
    For Each c In ActiveSheet.UsedRange
      t = c.Text
      If t <> "" Then
        If .Exists(t) Then
          .Item(t) = .Item(t) + 1
        Else
          .Add t, 1
        End If
      End If
    Next
    ActiveSheet.UsedRange.Clear
    k = .Keys
    For r = 1 To .Count
      For c = 1 To .Item(k(r - 1))
        Cells(r, c) = k(r - 1)
      Next
   Next
  End With
  With ActiveSheet.Sort
    .SortFields.Add2 Key:=Range("A1")
    .SetRange ActiveSheet.UsedRange
    .Apply
  End With
End Sub
0605名無しさん@そうだ選挙にいこう
垢版 |
2020/04/10(金) 14:56:14.87
https://dotup.org/uploda/dotup.org2109075.xlsx.html
上記ファイルのC3セルには参照セルとしてB1が入っていますが、ここにB1の数式本体(AVERAGE(A1:A4))を代入する方法はないでしょうか?
0608名無しさん@そうだ選挙にいこう
垢版 |
2020/04/10(金) 16:14:46.30
×C3 ○C1かな?

C1を選択-> 数式タブの名前の定義 ->参照範囲に =GET.CELL(6,$B1)  として適当な名前を付ける
付けた名前で、同行の列Bの数式が文字列として呼出せるよ
Excel4マクロだから、.xlsm等のマクロを含む形式で保存する必要あり
0611名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 15:30:58.18
列を挿入する下記マクロが異様に遅いです
単純に列が多いからなのか、マクロの書き方がまずいからなのか、どちらでしょうか?
Sub 列挿入()
Dim k As Long
For k = 3643 To 3 Step -1
Columns(k).Insert
Columns(k).Insert
Next
End Sub
0612名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 15:35:03.62
>>611
シートの表示に影響するような処理はそもそも遅い
・screenupdatingで表示更新切る
・1行ずつではなく一気に挿入にする
とかで多少マシになるんじゃね
0613名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 18:06:13.20
>>611
Sub 列挿入()
  Application.ScreenUpdating = False
  Dim k As Long
  For k = 3643 To 3 Step -1
    Columns(k).Resize(, 2).Insert
  Next
  Application.ScreenUpdating = True
End Sub
0615名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 18:18:44.24
【1 OSの種類        】 Windows10
【2 Excelのバージョン  】 Excel2010
【3 VBAが使えるか    】 いいえ
【4 VBAでの回答の可否】 可

セルの値の前に、半角スペース2文字でインデントされているデータを以下のように階層をネストさせて自動でグループ化したいのですが、うまくいく方法ないでしょうか。

1 2 3
-AAAA
| -BBBB
| | CCCC
| - DDDD
| -EEEE
| | FFFF
| - GGGG
-HHHH
||-IIIII
|- JJJJ
- KKKK

1階層表示の時は、
-AAAA
-HHHH
2階層表示の時は、
-AAAA
| -BBBB
| -EEEE
-HHHH
||-IIIII
- KKKK
3階層表示の時は全て表示
0616名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 18:30:53.68
>>615
そのツリーの表示は、

ms ゴシックを使いつつ



で表現するとがぜん見やすいよ
あとツリーの横にレベル列は必須

□は全角スペースの代わりに使ってる

1├●AAAA
2│├●BBBB
2│└●CCCC
1├ ● DDDD
2│└●EEEE
1├● FFFF
1├● GGGG
1└●HHHH
2□├●IIIII
2□ ├● JJJJ
3□□└● KKKK

と、こう表現する

出力の形式がそれなら、
半角スペースの数を数えてレベル列を作る

ところから始める…
0617名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 21:29:42.31
階層レベルを示すための、レベル列は、下記のように半角スペースの数を数えてつくったのですが、
その後、データ→グループ化でどう自動化していいのかでつまづいています。
グループ化をネストにさせたいところが特に。
実際のデータは8階層あって数千行あるので、毎回手動だとつらいかと。
=(LEN(B2)-LEN(SUBSTITUTE(B2," ","")))/2
0619名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 22:17:48.87
>>617
BOMかな?


表の上側に
表示したい親の名前か管理cdを入れる入力セルを作る
その横のセルに、その親のレベルを入力するセルを作る(IndexMATCH かVLOOKUPで引用でも)
その隣に何階層下まで表示するか入れる入力セルを作る

表に対して
レベル列の左側に、
ひとつ上が空白のとき
F 4で絶対参照して、表示したい親に入れたやつとその行の名前が一致してるかを判別して、一致してたら1とか“親”とか“レ”とか書き出すif

ひとつ上に空白じゃないとき
その行のレベルが、表示親のレベルより小さいなら
ひとつ上のセル+1とか“子”とか“レ”とか書き出すif

それ以外なら空白

という関数を仕込んで、表の下側まで展開したら、表示指定する親以下の固まりの部分が浮かび上がる

それをオートフィルターしてテキストフィルターで抽出


そこまでできたら、もう一列増やして、どの階層まで対象にするか判断して、チェック表示を返す部分を追加する
0620名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 22:31:08.77
>>619
>>617

ひとつ上に空白じゃないとき
その行のレベルが、表示親のレベルより小さいなら
ひとつ上のセル+1とか“子”とか“レ”とか書き出すif


その行のレベルが、表示親のレベルより大きいなら

だった、誤記訂正で
0622名無しさん@そうだ選挙にいこう
垢版 |
2020/04/11(土) 23:59:06.52
>>617
もし、グループ化にこだわる必要がなければ、
1行目をタイトル行にして、オートフィルタをかけてやれば、階層表示は可能だよ

グループ化する必要がある場合は、マクロを組むしかないと思う

マクロの流れは、
レベル8〜1までループ
上行からレベルが一致する行を探し、そこから、レベルが小さくなる前行までをグループ化 最終行まで続ける
0623名無しさん@そうだ選挙にいこう
垢版 |
2020/04/12(日) 01:46:41.73
皆さん、ありがとうございます。
オートフィルタだと表示項目を選択しづらくなるので、グループ化を目指しています。
ttps://www.shegolab.jp/entry/excel-macro-outline-tree
に良いマクロがあったので、それに合わせて項番階層を作成中です。
if文のネストになりそうでちょっと面倒そうですが、愚直にやっていけば何とかなりそうな感じです。
項番階層ってのもあるのですが、空白はダメと書いてあるので、使えなさそうでした。
空白をインデントに変える方法もしくは、VBAを書き換える方法があればできるかもしれないですが、
そこまでスキルがなくて。。。
0624名無しさん@そうだ選挙にいこう
垢版 |
2020/04/12(日) 10:21:05.64
>>623
オートフィルターが効く部分を残しておくとsumifとかcountifで見る以外の集計作業が楽になるよ

データに残らないインデントを使うとあとで大変なことになるよ

部品表とか組織図で一度やって大失敗した経験から言っておく
0625名無しさん@そうだ選挙にいこう
垢版 |
2020/04/12(日) 11:41:11.87
ご助言ありがとうございます。
とある装置の性能シミュレーション結果があって、モジュール、サブモジュール毎の
集計結果はテキストででいて、それを見やすくするのにエクセルで体裁整えてます。
オートフィルタも併用しますがエクセルで再集計することはないので、見易さがよければと。
データ量が多いので、完全自動化がよかったのですが、最終的に、一度データ区切り位置で
階層を列に分解したあと、↓の列下げ階層でグループ化しました。
ttps://www.shegolab.jp/entry/excel-macro-outline-tree
0626名無しさん@そうだ選挙にいこう
垢版 |
2020/04/12(日) 17:58:23.19
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel 2016 16.0.12624.20348
【3 VBAが使えるか    .】6☆
【4 VBAでの回答の可否】 可

シフト勤務表をエクセルで作っていて、条件付き書式で土曜を水色、日曜をピンク、祝日を黄緑に背景を塗り潰すようにしています。
イレギュラーな日は文字色を赤にしたいのですが、条件付き書式で文字色は自動にしているにも関わらず、日曜の文字色だけ黒から変更できません。土曜と祝日は文字色を変更することができます。
考えられる原因と解決策を教えてください
0630名無しさん@そうだ選挙にいこう
垢版 |
2020/04/12(日) 18:19:42.77
>>629
多分ごちゃごちゃになってて頭の中で整理できていないだけ
よ〜く読めば
>日曜の文字色だけ黒から変更できません。
この理由もわかるはずだけど、まぁ得に意味ないし、頭きりかえて次いこう
0632名無しさん@そうだ選挙にいこう
垢版 |
2020/04/12(日) 22:00:01.34
>>629
もう解決してるみたいだけど、おそらく日曜日の場合は「背景ピンク、文字色黒」になってた可能性。
なお、イレギュラーな日は直接色を指定するんじゃなくて、どこかに作業セルを作って、それをフラグに条件付き書式を設定するのがよいかも。
0633名無しさん@そうだ選挙にいこう
垢版 |
2020/04/12(日) 23:05:13.96
>>630
原因が特定できずモヤモヤしてますがしょうがないですね
>>632
最初それだと思って書式確認したんですが自動になってたので不思議すぎて質問しました
良い感じの設定を思いついたらそうしてみます
0634名無しさん@そうだ選挙にいこう
垢版 |
2020/04/13(月) 20:36:36.55
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

OneNoteが使いたかったんですが、
職場では使えない為エクセルで疑似的にやろうかと考えています。

全シート共通で左側にハイパーリンク駆使して分類わけし、
基準のシートを更新したら他のシートもリアルタイムに更新されるようにしたいのですが
何か方法はありませんか?
全シート選択して一括修正など、簡単にできそうな操作があればそれでもかまいません。
よろしくお願いします。
0636名無しさん@そうだ選挙にいこう
垢版 |
2020/04/13(月) 20:50:27.50
>635
ブックの共有は考えていないです。
1つのブック内でシートを多数作成し、このシートをonenoteでいうページに見立てます。
全シート共通で左側のセルにハイパーリンクを使用しセクション分けを行って、
メニュー作成します。
セクション分けは頻繁に変更したいので、基準のシートを変更したら
他のシートも自動的に変わるようにしたかったのですが、
うまくいかずその方法もしくは別の手段があれば知りたいです。
0638名無しさん@そうだ選挙にいこう
垢版 |
2020/04/14(火) 07:12:28.79
oneノート使ってないから起動して眺めただけだけど
セクションの方をシートにしなかったのは何故?
ページをアウトラインに見立てれば、似てる気がする
0639665
垢版 |
2020/04/14(火) 15:11:15.09
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ブックAで重複すると黒く塗る条件付き書式の表を使っており、一ヶ月分を日付ごとに削除してから戻していくことで同ロットの初日を割り出しています。
この状態でブックBを編集してもAで戻すを押すとBの編集が戻っちゃいます(2つのブックを別窓で開いても戻るボタンが窓を跨いで共有してしまう)。

レジストリ編集する方法調べて〜office16〜"%1"で設定して開いても分けられません。
windows7のexcel2010だと出来てたんですが、10では出来なくなったんでしょうか?

長文失礼しました。よろしくおねがいします。
0641名無しさん@そうだ選挙にいこう
垢版 |
2020/04/14(火) 18:23:50.02
>639
説明下手すぎワロタ
状況も質問もそれでは分かりませんよ
文章が苦手なら画像を活用しては?

>640
なんでもいいからエクセル初心者みたいな本買ってみればいいんじゃない
そもそも、本選びだって人生においては勉強の一つなんだから
娘が欲しがっているのなら自分で選ばせるべきでしょう
あなたは教育の仕方を勉強したほうがいい
0642名無しさん@そうだ選挙にいこう
垢版 |
2020/04/14(火) 18:53:44.90
>>639
最初の2行いらなくないか
Excelファイルを2つ開いている状態で、Excel1のA1に入力、Excel2のA1に入力、Excel1のB1に入力した後に
Excel1のA1、B1を修正しようとctrl+zを2回するとExcel1のB1とExcel2のA1が消える
アクティブなExcelだけコントロール出来ないかって事だろう

回答として、
2013から仕様が変わってるので、複数開いていても同じインスタンスの扱いなので普通に開いても無理
全く同じ質問してる人が過去に居るから参考までに
https://answers.microsoft.com/ja-jp/office/forum/office_2013_release-excel/excel-2013/3e055d06-d049-4a77-9abe-2aa1bcd65e3c
0643名無しさん@そうだ選挙にいこう
垢版 |
2020/04/14(火) 20:33:52.85
ExcelVBAからWordやパワーポイントなどの他アプリを参照して操作するのはExcelとその他アプリとデータのやり取りが目的でExcelのファイルと同じ感覚で直接編集する為のものじゃないんだよな
どうしてもそうしたいならあっちのVBAで設定した方が早いし簡単
それでもどうしてもExcel発に拘るなら適当な位置でメッセージボックスでも入れて、それを出したままWordやパワーポイントを直接編集し、終わったらメッセージボックスを引っ込める
という方法しかないのかね?やっぱり
0652名無しさん@そうだ選挙にいこう
垢版 |
2020/04/16(木) 11:22:50.26
KB4484285
またかよ、最悪
0654名無しさん@そうだ選挙にいこう
垢版 |
2020/04/16(木) 13:48:28.35
面倒な計算をすれば線の角度はわかるけど、そもそもなんのために角度を求めたいのか
グラフは角度を読み取るための物ではないのだが、使い方を間違ってないか
0656名無しさん@そうだ選挙にいこう
垢版 |
2020/04/16(木) 16:12:59.87
なんのグラフか分からないけどExcelで作るような棒グラフとか折れ線グラフの事を言ってるなら増加率とか変化率で算出するのが一般的ではなかろうか
統計でも角度で扱うのは無かったような…
0658名無しさん@そうだ選挙にいこう
垢版 |
2020/04/16(木) 18:02:31.15
何かの変化率を折れ線の角度で表現するのは世の中で一般的じゃないから、そんな数字を見せられた相手が困惑すると思うぞ

そもそもExcelではグラフエリアやプロットエリアをドラッグしただけで線の角度が変わってしまう
そこはどうするつもりなのか
0663名無しさん@そうだ選挙にいこう
垢版 |
2020/04/16(木) 21:58:03.53
質問主ですがなるほどわからんて感じになってきました
>>662の言う通り何もグラフから出さなくてもいいんですが、上昇率とでもいえばいいんですかね・・
0666名無しさん@そうだ選挙にいこう
垢版 |
2020/04/16(木) 22:28:07.18
メ ←こういう状態で2本のグラフが交差してる状態があるとして、「ノ」の線の交差している点の(直)前後の2点間の傾きが分かれば、「ノ」の線がどれくらい急な角度で「、」の線を貫いてるかがわかりますよね?それが知りたいのです
0670名無しさん@そうだ選挙にいこう
垢版 |
2020/04/17(金) 00:17:15.17
>>666
防衛省の大ポカを再現しようとしてますね。
防衛省、実地調査せずグーグルアース使う 幹部が認める 朝日新聞DIGITAL 2019年6月8日
https://www.asahi.com/articles/ASM6864RMM68UBUB004.html
をご覧ください。
>>668さんの説明と同様、グラフの作り方でいかようにも表現できるのです。

求めるべきは、増加と減少のそれぞれの比率(パーセンテージ)ではありませんか?
あるときは A系列は+5%、B系列は−8% →差は13%
あるときは A系列は+7%、B系列は−3% →差は10% という感じです。
0671名無しさん@そうだ選挙にいこう
垢版 |
2020/04/17(金) 00:36:44.09
セルに入力した文字に対し、
先頭から5文字は赤色
6-10文字は青色
11字文字以降は黄色
といったように色分けしたいですが、どんな方法があるでしょうか。
0672名無しさん@そうだ選挙にいこう
垢版 |
2020/04/17(金) 00:50:36.22
>>671
入力したセル自体に複数の色を使いたいなら、手動でするかVBA使うしかない。
どうしても関数使ってやるとすれば、セルに分割するくらいしかない。
A列に元の数値、B列に最初の5文字、C列に6-10文字、というふうにして(left関数、mid関数などを使う)、B列は赤、という感じ。
0674名無しさん@そうだ選挙にいこう
垢版 |
2020/04/18(土) 01:51:11.92
なんかグラフ関連の話で荒れた後で申し訳ないですが質問です
excelのデータをもとに山と谷が二つずつある折れ線グラフを複数描いたとして、山も谷も切り上がっている状態のグラフを選別したい場合、数値をどのように参照したらいいでしょうか?
0677名無しさん@そうだ選挙にいこう
垢版 |
2020/04/18(土) 09:22:31.71
>>674
っていうかキミ、
「何のために」が不明だから
「何がしたい」の内容が
有用なのかどうか論理的にも怪しくて
回答する気なくなるんだよね

いったん他所で煮て来てもらっていいかな
0680名無しさん@そうだ選挙にいこう
垢版 |
2020/04/18(土) 10:07:51.42
>672
>673
システムにコメント入力する仕事があって、
1行に5文字しか入力できない仕様になっています。
エクセルでコメントを入力して貼り付けすると楽なんですが、
単語が行を跨ぐと読みにくくなるので
エクセルで入力している段階で確認できる仕組みを考えていました。

なので色分けが必ずしも必要になるわけではなく、分割できるのならそれでなんとかなりそうです。
ありがとうございます。
0682名無しさん@そうだ選挙にいこう
垢版 |
2020/04/18(土) 11:14:57.99
>680
それだったら、入力する文字列を色分けするんじゃなくて、
一つ右の列にでも、入力文字数をカウントするセルを作ればいいのでは(len関数など)。
その数値を条件付き書式で色分けすればいい。
半角と全角をどう数えるかは、その5文字の仕様によって考える必要があるけど。
0683名無しさん@そうだ選挙にいこう
垢版 |
2020/04/18(土) 11:48:38.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


A1に「移動」という文字列が含まれた場合、
C1に「移動済」という文字列を末尾に挿入するにはどうすればいいでしょうか。
この時A1、C1ともに赤文字にしたいです。

   A1   |  B1  |   C1   |
 移動123  |      |○○移動済|


宜しくお願いします。
0686683
垢版 |
2020/04/18(土) 12:19:05.24
>>684
直接入力です。

>>685
substitute関数・・・ちょっと調べてみます。
0693名無しさん@そうだ選挙にいこう
垢版 |
2020/04/19(日) 09:36:50.30
セルの書式設定→表示形式→ユーザー定義 で
平均数値計算値に“平均値;”という文字列表示を設定しましたが
この文字列をボールド表示する設定はどの様にするのでしょうか?
0696名無しさん@そうだ選挙にいこう
垢版 |
2020/04/19(日) 10:20:14.59
“平均値”と書く列をわけて、その列だけ太字設定にする

その平均値と表示するだけのセルは
if(右のセル=“”、“”、“平均値:”)
とする

どうせデータ処理には使わんからいいでしょ
0699名無しさん@そうだ選挙にいこう
垢版 |
2020/04/19(日) 22:09:12.43
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
番号で管理されている品物があります
例えば101はりんご203はバナナみたいな
ところがバナナには208や301という番号も付いてて2つ以上の番号があったりします
これを203で呼び出したら、バナナが208と301も持ってることを表示出来るようにしたいのですが
どんな方法がありますか?
0700名無しさん@そうだ選挙にいこう
垢版 |
2020/04/19(日) 22:20:45.76
>>699
countif($列$行:相対、品名)
を使うと重複登場がわかります

それからアンドでくっつけて、
1番目-品名
2番目-品名

というセル列をつくってから、横にIndex MATCH でひもづけ
0701名無しさん@そうだ選挙にいこう
垢版 |
2020/04/19(日) 22:20:54.82
>699
「バナナ」ではなく番号で呼び出すの?
まずは通常通り番号からバナナという名称を呼び出す
その後、バナナという名称を持っている番号を検索するしかないと思うけど。

番号からバナナを呼び出せているのなら、さほど難しくないと思うけど・・
え?
0703名無しさん@そうだ選挙にいこう
垢版 |
2020/04/19(日) 23:18:17.49
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Ctrlを押しながら選択すると複数のセルを選択できますが、間違えたセルを選択してしまった場合、そこだけ選択から外す事はできませんか?
0716名無しさん@そうだ選挙にいこう
垢版 |
2020/04/22(水) 00:54:26.04
【1 OSの種類         .】 Win10
【2 Excelのバージョン   】 Excel2016か365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
時刻データから、分の10ぷん台の値がほしい。
17:27(17時27分)なら、2が欲しい。
0718名無しさん@そうだ選挙にいこう
垢版 |
2020/04/22(水) 12:06:35.75
Office2019がインストールされているノートPCを購入した。

デスクトップPCを購入し、Office365 Soloを購入し、インストールした。

この状態で、
ノートPCにもOffice 365 Soloをインストールできますか?
また、できる場合、デメリットとして考えられることってありますか?
0719名無しさん@そうだ選挙にいこう
垢版 |
2020/04/22(水) 12:30:22.78
MSに聞け
0720名無しさん@そうだ選挙にいこう
垢版 |
2020/04/22(水) 15:48:15.47
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

あるブックだけ、VBAの編集画面で、常に半角カタカナがデフォルトになります。
これ、何が原因なのか、思い当たるものはありますでしょうか?
0721名無しさん@そうだ選挙にいこう
垢版 |
2020/04/22(水) 17:40:39.61
>720
・思い当たるものはございますか。
・思い当たるものはありますか。

表現が気になったので。
メールするような仕事であれば直したほうがいいですよ
0727名無しさん@そうだ選挙にいこう
垢版 |
2020/04/22(水) 23:02:51.03
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

教えてください
VLOOKUPとかで他のブックのセルの値を参照させたいのですが
参照先のブックに読み取り用のパスワードがかかっている
状態だと関数では対応できないのでしょうか?
0731名無しさん@そうだ選挙にいこう
垢版 |
2020/04/23(木) 22:17:59.15
>729
よくわからんがグラフを基準値と比較できるようにしたいということ?
グラフを2つ並べたいという意味であれば
「100 積み上げ縦棒 比較」でググれば色々でてくる

ググれば大抵の事は解決するし、
もしググり方が分からなければ、手書きで図でも添付したほうが伝わるぞ
0734名無しさん@そうだ選挙にいこう
垢版 |
2020/04/24(金) 09:57:25.82
品番を入力すると品名が表示されるようにvlookで表を作りました
未入力のセルに表示される#n/aを消すのにiferrorを使ったのですが
これだと空白の時と間違った品番を入力した時どちらも空白のままです

未入力は空白、誤入力はエラー表示にさせるにはどんな数式にすればいいですか?
0737名無しさん@そうだ選挙にいこう
垢版 |
2020/04/24(金) 18:16:15.67
VBA初心者です
以下のコードを標準モジュールに入力して試すと
1回目は問題なく入力に対応し別のセルも参照値を戻してくれんだけど
2回目は前の値がセルに残って参照値に置きかえらないのはなんででしょうか?

Sub vlookup_sample5()
With Worksheets("入力")
.Range("C3") = WorksheetFunction.VLookup(.Range("B3"), Worksheets("データ").Range("A3:C8"), 2, False)
End With
End Sub

難しくてわかりません
ご教授ください!
0743名無しさん@そうだ選挙にいこう
垢版 |
2020/04/24(金) 21:24:57.72
Option Explicit
Sub vlookup_sample5()
With Worksheets("表")
Worksheets("表").Range("C3") = WorksheetFunction.VLookup(Worksheets("表").Range("B10"), Worksheets("DB").Range("N1:O30"), 2, False)
End With
End Sub

コンボボックスで氏名を入力したらセルにシート(表)B10に氏名が打ちあがり
シート(表)B10に打ちあがった名前をシート(DB)のN1からN30までに入力してある名前の中から探し
見つかった列の横列すなわちO列から見つけシート(表)のC3に打ち上げたいのですが
1回目は打ちあがりますが2回目は変化しないで名前が変わりません

  N    O    P    Q    R ・ ・ ・ ・
1佐藤  佐藤隆
2田中  田中太郎
3三宅  三宅次郎
4阿久  阿久裕









.シート(表)に田中がコンボボックスから入力されたら
シート(DB)から対応する名前をO列から探し
シート(表)に返す
0744名無しさん@そうだ選挙にいこう
垢版 |
2020/04/24(金) 21:25:53.14
モノクロレーザーで交互色にしたいときは網掛けでしょうか?
網掛けにしてそこに文字うつと黒い粒で文字がわかりにくくなりますよね?
0747名無しさん@そうだ選挙にいこう
垢版 |
2020/04/24(金) 23:30:51.61
教えてください

=VLOOKUP(B1,Sheet2!B3:I20,3,FALSE)

この Sheet2!B3:I20 の部分を

例えば、C1セルに Sheet2!B3:I20 と入力しておいて
それに置き換えることってできませんかね?
実際は参照先が他のブックなんですが、たまにファイル名が
変わるので、どこかのセルに参照先ブックのパスを入力して
それを元に参照させたいのですが
0751名無しさん@そうだ選挙にいこう
垢版 |
2020/04/25(土) 17:30:24.57
コンボボックスで氏名おしえてですが
自己解決しました

素人のとんでも質問にやさしく対応してくらた皆さんありがとうございました

チェックボックスをユーザーフォームに追記してそれと連動させました
0752名無しさん@そうだ選挙にいこう
垢版 |
2020/04/25(土) 18:32:44.20
>>739
SMALL関数は、文字列には対応してないので、番号が文字列で入ってると、あの式では無理ですね
恥の上塗りで、文字列キーにも対応版です
=IFERROR( INDEX($A$3:$A$9999 , SMALL( IF($B$3:$B$9999=$B1 , ROW($B$3:$B$9999) , "") ,  COLUMN()-2) -2) , "")
前回と同じく、Ctrl+Shift+Enterして下さい

前回は説明を省いたけど、
表がA3:B9999 、 2行目に項目名、 A1に検索番号入力、 B1にVLOOKUP式 、C3以右に上記の式を並べる 想定です
配列数式で検索対象の品物がある行の番号を並べ、 SMALL関数で昇順で内1つをCOLUMN関数で順番をずらしながら抽出し、 INDEX関数で番号を出しています
該当する品物が無い場合はSMALL関数でエラーが出るのでIFERRORで回避しています
9999では多すぎるので9ぐらいにして、数式の検証すれば、過程がわかると思います
0753名無しさん@そうだ選挙にいこう
垢版 |
2020/04/25(土) 18:52:05.59
excel シート表示するにチェックがあるのに
(オプション→詳細設定→水平スクロールバー表示する
チェック有、シート見出しを表示するチェック有)

シートと下カーソルが表示されません

どうすれば表示されますか?
0757名無しさん@そうだ選挙にいこう
垢版 |
2020/04/25(土) 21:06:25.97
スペースがあったんだっけ。それじゃあ、これでどうだろ。前後のスペースはつぶせるはず。
=IFERROR( INDEX($A$3:$A$9999, SMALL( IF(TRIM($B$3:$B$9999)=TRIM($B1), ROW($B$3:$B$9999), ""), COLUMN()-2) -2), "")
0759名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 13:55:00.25
エクセル初心者のおっさんです
現場から事務職に配置変えのため解りやすいエクセル参考書を教えてw
沢山ありすぎるわw
0760名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 14:11:08.03
前任者に訊いてよ、職場ごとのやり方ってもんがあるでしょ
引継ぎも無しに配置換えしたのなら上司にパソコン教室の料金出させるのじゃ
で、その稟議書をエクセルで作成すると却下されるから注意な
0763名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 19:37:46.22
富士通のはやめとけ
たぶんDB経験者のジジイが書いたんだろうけど、概念は間違ってないけど古い
はっきりいってアレが前提の信者が増えるのは迷惑
0764名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 19:39:06.48
特に画面作りが最悪で見ただけで、ああ、富士通のクソだとわかるくらいクソ
0765名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 19:43:16.75
一般操作もクソだけどVBAはさらにクソで日商とかの資格モノと並んでいつの時代の話だよってのを延々垂れ流してる
かえって手間かかる事を押し付けるだけのクソだから触れない方がいい
0766名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 19:44:29.02
仕事で使う気が無くて資格コレクションしたいだけならオススメ
0767名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 19:56:30.67
>>759
MOSの対策本が良い
FOMと日経があるけどどっちでもok
ちょっと高いけど、メルカリで買ってメルカリで売れば500円ぐらい
ついでにMOSもとっとけばok
0768名無しさん@そうだ選挙にいこう
垢版 |
2020/04/27(月) 20:09:19.08
>>759
初心者にはこれ!っていう定番はない
どれでもいいから本屋で実際に見てみて自分が興味湧いたものを買うのがいいと思う
気を付けるのは自分が使うExcelのバージョンに合ったやつを選ぶことぐらい
0770名無しさん@そうだ選挙にいこう
垢版 |
2020/04/28(火) 03:22:42.07
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

チェックボックスを利用して複数条件のオートフィルタを動かすのはどうしたらいいのでしょうか?
たとえば、1〜6年生、1〜4組、男子 or女子、名前が記載された表があるとします。
チェックボックスを変更した際に表に複数条件のフィルタをかけたいです。
1年と3年、2組と4組、の男子などのようにしたいのですが、1年と3年にチェックを入れるとあとから選んだ3年だけみたいなフィルタになってしまいます。
どのようなコードにすればいいのでしょうか?
0771名無しさん@そうだ選挙にいこう
垢版 |
2020/04/28(火) 03:37:02.77
>>770
フィルタの条件が複数あるときは

AutoFilter Criteria1:=Array("1年", "", "3年", "", "", "")

みたいに書く
チェックが外れてるところは空文字列にすればいい
0772名無しさん@そうだ選挙にいこう
垢版 |
2020/04/28(火) 03:50:49.22
>>770
配列変数で書き直すとこんな感じ
チェックボックスを全部調べて変数値をセットすればいい

Dim gakunen(5) As String
gakunen(0) = "1年"
gakunen(1) = ""
gakunen(2) = "3年"
gakunen(3) = ""
gakunen(4) = ""
gakunen(5) = ""
ActiveSheet.Range("A1:Z99").AutoFilter Field:=1, Criteria1:=gakunen, Operator:=xlFilterValues
0773名無しさん@そうだ選挙にいこう
垢版 |
2020/04/28(火) 11:26:31.58
チェックボックスの状況によってそのチェックボックスの表示文字列を取得するだけなのですが
エラーが発生しています。
何が誤っているのでしょうか?
(根本的な別の方法があれば、それでもかまいません)
よろしくお願いいたします。

Dim Exhibitor(6) As String
For i = 0 To 6
If CheckBox(i + 1) = ture Then
Exhibitor(i) = CheckBox(i + 1).Caption
Else
Exhibitor(i) = ""
End If
Next i
0775名無しさん@そうだ選挙にいこう
垢版 |
2020/04/30(木) 13:46:31.79
【1 OSの種類         .】Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
社名欄,日付1,日付2の様なシートがあり

そこに日付を記入すれば全体の工程表に反映される(該当欄に色が付く)タイプの工程表を条件付き書式で作成したいのですが

会社Aの工事日5/15,5/17,5/19、会社Bの工事日5/16,5/19,5/25の様に日が空く場合に反映させるにはOR関数で1つずつ条件設定するしかないでしょうか
0776名無しさん@そうだ選挙にいこう
垢版 |
2020/04/30(木) 13:54:42.22
>>775
そういうのは表の作り方次第だから、表の体裁が会社ルールで決まってるんでない限りは、条件の指定が簡単になるようにデータの並べ方などを工夫する
0777名無しさん@そうだ選挙にいこう
垢版 |
2020/04/30(木) 14:01:45.78
間に集計用のシートを挟んで
その内容を表示用シートに展開

表示用シートの条件つき書式の数式は
(自分のセルが何とかかれているか?)
だけにする

条件付き書式の数式はとにかく簡単にする
0778名無しさん@そうだ選挙にいこう
垢版 |
2020/04/30(木) 15:26:52.22
簡単なことかもしれませんが、慣れておらずお助けいただきたいです。

【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 office365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

100%積み上げ横棒のグラフでデータラベルをグラフの真上に配置したいのですが、ラベルの位置で外というのがありません。
これはグラフの内側にしか配置できないのでしょうか?
矢印図形などで手動で配置していこうかとも思いましたが、グラフに使えるスペース的に厳しそうです。

テキストボックスでひとつひとつ配置していくしかないですか?
0779名無しさん@そうだ選挙にいこう
垢版 |
2020/04/30(木) 15:39:21.18
>>776
>>777
シート1(印刷用)
シート2(条件付き書式用)
シート3(日付記入欄)
みたいに作る感じでしょうか
エクセル工程表はネット上にゴロゴロあるのに飛び日を纏めるだけで調べても出なくなって辛い
0780名無しさん@そうだ選挙にいこう
垢版 |
2020/04/30(木) 15:47:54.60
>>779
とりあえず、現在の状態をスクショして晒してみ?
こういうふうになって欲しい、っていう希望の状態を手作業で作ってもいいし
それ見て自動化できるかどうか考えるから
0782名無しさん@そうだ選挙にいこう
垢版 |
2020/05/01(金) 18:49:00.96
example="https://exampleexample";;
このような行が複数あるリストから
hからeまでのURLを抽出して一覧にする方法はありますか?
URLの文字数は変化します。
mid関数を見つけましたが、文字数を指定しなければいけないことと
"を開始と終了の文字として指定出来るのか疑問です。
分かる方がいましたら教えてください。
0788名無しさん@そうだ選挙にいこう
垢版 |
2020/05/02(土) 07:49:27.44
>>785->>787
783含め3つの式で上手くいきました!
Openofficeで試してて関数の互換性は確認してたんですが
カンマをセミコロンに変えていなくてエラーが出てました。
お騒がせしました。教えてもらった関数の構成詳しく調べてみます。
ホントに助かりました。ありがとうございます。
0789名無しさん@そうだ選挙にいこう
垢版 |
2020/05/02(土) 10:24:50.85
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ご教授お願いします。
売価変更を自動計算して合計金額に反映される表を作成しようと思ってます。

行に品番、列に価格を入力しているのですが、売価変更する毎にその数字を参照するような表を作成したいです。
単価×枚数(変動なし)なのですが例えば1000,900,870など任意に単価変動させた場合、A1の品番がB2,B3,B4...と値下げをし更新していく度にB列の新しい単価が入力されたセルを参照するやり方がわかりません。
0794名無しさん@そうだ選挙にいこう
垢版 |
2020/05/02(土) 22:55:39.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
↑このテンプレが何かモヤってたんだけど、やっとわかった。

Dim a as Long
Dim b as String
Dim c as Integer
Dim d as Variant
↑俺、いつもこう書かないで、

Dim a as Long, b as String, c as Integer, d as Variant
↑こう書いていたからだ。

というわけで、Windows10, Excel2016, いいえ, 否 でよくないっすかねぇ?
0796名無しさん@そうだ選挙にいこう
垢版 |
2020/05/02(土) 23:22:37.15
>>794
OSとバージョンは並べてもいいけど、「いいえ、否」ではなんのことかわかlihe
こういうのを可読性が下がる、と言うのではないか

あと、人に見せない前提で文字数を減らしたい時は俺ならこう書く
Dim l&, s$, i%, v
整数型はi、j、文字列変数ならs、t、行・列はr、cって自分ルールを作ってある
0805名無しさん@そうだ選挙にいこう
垢版 |
2020/05/03(日) 08:53:48.89
>>803
まず0に斜線の入るフォントが少ないから、見やすさにはこだわらない方がいい
無難なのはIPAゴシック
ただし斜線が入るのは半角の0だけ、全角には入らない
0817名無しさん@そうだ選挙にいこう
垢版 |
2020/05/03(日) 20:23:27.91
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

ExcelとXmlの対応付けって、どういう状況で使うんでしょうか?
VBAの開発効率があがるのなら使いたいんですが。
0818名無しさん@そうだ選挙にいこう
垢版 |
2020/05/03(日) 21:25:10.68
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


質問です
19|20|2|30|3|1|3
20|5|1|19|4|1



というのがずっと続いてる表の中で、行の最初の2つの数字の合計と後ろ4つの数字の合計が合わないデータを探したい時はどうすればよいのでしょうか?
関数の検索行列の分類を見たのですがどれを使いどうすればいいのか全く分かりませんでした…
0821名無しさん@そうだ選挙にいこう
垢版 |
2020/05/03(日) 21:45:43.42
左に6列、列の追加を行う
6列目はcountaとかで数が入っているセルの数を数える
5列目にindirectを使って、自分の場所から、横にcountaの数を動いて取ってくる
4列目にも同じ関数を仕込む…

というのをやって、5〜2列に後ろ4セルの数字を持ってくる

で、サムしてifする
0823名無しさん@そうだ選挙にいこう
垢版 |
2020/05/03(日) 23:17:08.99
色々ありがとうございます!
申し訳ないですが>>820これなら私でも理解できたのでこれでいこうと思います
間違っていればそこはエラーが出るからそれで分かるという事ですね
発想いいですね
0828名無しさん@そうだ選挙にいこう
垢版 |
2020/05/04(月) 06:20:46.11
まず、左端に作業列を挿入する

次に、全体の最終列がどこなのか調べる
列ラベルをドラッグしながらステータスバーの合計欄を見て、数字が増えなくなったら、そこが全体の最終列
今後の為にもう少し余裕を見てもいいし、調べるのが面倒ならCZ列位の大きすぎる列にしてもいいよ


あとは、左端に挿入した列に、数式を入れる

各行の不足列は空欄になっているはずだから、COUNTBLANKで空欄を数えれば、各行の最終列が割り出せる
(空欄ではなくスペース文字が入ってたりすると計算が狂うから、その場合はスペース文字を置換する
途中に空欄が入ってる場合も狂うけど、その場合は個別対応する)

最終4列は、OFFSETを使えば出せるから、例えば全体の最終列がZの場合は
=SUM(B1:C1) - SUM(OFFSET(Z1, 0 , -COUNTBLANK(B1:Z1), 1, -4) )
の様な感じにすればいいよ

個人的には、もう少し作業列を増やして、2つのSUMと比較式を別々の列に入れた方が後々メンテしやすいとは思う
0832名無しさん@そうだ選挙にいこう
垢版 |
2020/05/04(月) 16:09:43.09
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

担当者をプルダウンで選んだ結果でフィルタリングするのに
下記VBAを見つけましたが

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Sheets("Sheet1”).Activate
Selection.AutoFilter Field:=4, Criteria1:=Target.Value ←D列でフィルタリングしたい
End Sub

1.担当者と同時に「合計」の値でもフィルタリングしたい
 (一番下に合計の行がある)

2.これでフィルタリングするとプルダウンリストではフィルタリング前に戻せなくなるので
 プルダウンリストの選択肢に例えば「全て」を作っておき
 全てを選ぶと全てと上記の「合計」でフィルタリングしたい

どうすればよろしいでしょうか
0834名無しさん@そうだ選挙にいこう
垢版 |
2020/05/04(月) 16:18:44.83
>>818
ここまで出ている依頼者への質問と、自分からの疑問点をまとめると
質問1:行により最終列がバラバラということですね?(>>181の1件目の例は7列、2件目の例は6列)
質問2:質問文中の「最初の2つの数字」と「後ろ4つの数字」が重複することはありますか?
     (例では7列と6列でしたが、5列以下だと重複します。)
質問3:途中に空白セルはありますか?
     途中に空白セルがある場合、空白のときはゼロとみなして判定していいということですか?
     それとも、空白セルを除いて「最初の2つの数字」や「後ろ4つの数字」を計算対象にすべきですか?
質問4:「最初の2つの数字」の最初とは、A列固定で間違いないですか?(質問3と関連)
    つまり、A列が空欄の場合、B列、C列の数字を「最初の2つの数字」とするのでしょうか?
0838名無しさん@そうだ選挙にいこう
垢版 |
2020/05/04(月) 17:30:37.51
>>832です
すみません、下記で全て自決しました

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$1" Then Exit Sub
Sheets("Sheet1”).Activate
If Target.Value = "全て" Then
ActiveSheet.ShowAllData
Else
Selection.AutoFilter Field:=4, Criteria1:=Target.Value, Operator:=xlOr, Criteria2:="合計"
End If
End Sub
0839名無しさん@そうだ選挙にいこう
垢版 |
2020/05/04(月) 19:07:40.30
>>838です
すみません、自決してませんでした

「全て」を選んだ後、再度「全て」を選ぶと下記エラーが表示されます

実行時エラー ‘1004’:
Worksheet クラスの ShowAllData メソッドが失敗しました

回避ふる方法ありませんでしょうか
0840名無しさん@そうだ選挙にいこう
垢版 |
2020/05/04(月) 19:25:23.59
>>839
オートフィルターを使う時は無条件に最初一回解除するんだ
その後、全て以外の時に絞り込みを行うようにすると良い

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$C$1" Then Exit Sub

On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0

Sheets("Sheet1").Activate
If Target.Value <> "全て" Then
Selection.AutoFilter Field:=4, Criteria1:=Target.Value, Operator:=xlOr, Criteria2:="合計"
Else
'なにもしない
End If
End Sub
0843名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 00:38:10.68
>>818ですけどなんか色々惑わせてしまってたようで申し訳ないです…
行にデータは6つです
数えたら確かに1行目に数字7つありましたね、ただのミスです申し訳ない
0845名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 00:45:09.06
>>839です
複数のプルダウンからフィルタリングできるようにしようと思って
このようにしたのですが、

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$D$1" Then GoTo L1

On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0

Sheets("Sheet1").Activate
If Target.Value <> "全て" Then
Selection.AutoFilter Field:=4, Criteria1:=Target.Value, Operator:=xlOr, Criteria2:="合計"
Else
'なにもしない
End If

L1:
If Target.Address <> "$E$1" Then Exit Sub

On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0

Sheets("Sheet1").Activate
If Target.Value <> "全て" Then
Selection.AutoFilter Field:=5, Criteria1:=Target.Value, Operator:=xlOr, Criteria2:="合計"
Else
'なにもしない
End If

End Sub

この場合4列目D列でフィルタリングした時に5列目E列のフィルタリングはリセットされます
それは良いのですがプルダウンで選択したもう片方のほうが
前回選んだ値が表示されたままになっているので「全て」に書き換えるようにしたいです
どうすればよろしいでしょうか
0846名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 07:53:28.19
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

階層1:大量のフォルダ(※1。数は100程度)
階層2:上記※1にちょくちょく入っているフォルダ(※2)、エクセルデータ、メモ、ワード、pptなど
階層3:上記※2内にあるエクセルデータ、メモ、ワード、pptなど

この大量データをエクセルに抽出したいのですが、これはどのような方法がありますでしょうか?
何が入っているか?をデータ化する予定です
一つ一つハイパーリンク作るのは尋常じゃない時間がかかるなと思い。
0847846
垢版 |
2020/05/05(火) 07:58:29.44
@地道に入力作業(現在のやり方がコレ。大量のフォルダを作成するマクロは理解しているが、
フォルダを「抽出」する方法は知らないのと更新があった場合対応出来ない)
AVBAでしか無理
Bその他

Aの場合ならVBAの勉強開始する予定です
Bの場合ならこういう方法は?とご提案頂ければ嬉しいです。
0848名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 08:03:57.52
>>845
配列は覚えてね

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False '自動イベントをオフにする。オフにしないと無限ループになる
Sheets("Sheet1").Activate 'selectなどは最初にしておいたほうが良い

'条件が複数になりそうなら配列で管理すると楽ちん
target_address = Array("$D$1", "$E$1") 'ここで指定
flg = False
For Each c In target_address
If Target.Address = c Then
flg = True
Exit For
End If
Next
0849名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 08:04:09.07
>>848
の続き

If flg Then 'main

'リセット
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0

'他の見出しを「全て」に
For Each c2 In target_address
If Target.Address <> c2 Then
Range(c2).Value = "全て"
End If
Next

If Target.Value <> "全て" Then '全ての場合は何もしない
Selection.AutoFilter Field:=Target.Column, Criteria1:=Target.Value, Operator:=xlOr, Criteria2:="合計"
End If

End If

'自動イベントを戻す
Application.EnableEvents = True

End Sub
0853名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 08:09:43.61
>>846
ファイル名ぐらいならvbaで瞬殺だけど、中身となると基本無いような
今丁度テレワーク流行ってるし在宅の人にのんびりやってもらうのはいかがかな
0858名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 09:27:16.67
>>846
一覧表をどんな形式で作りたいかによるけど
コマンドプロンプトを使えばファイルの一覧は一発で作れる

Sub File_List()
  Dim WSH
  Dim wExec
  Dim cmd As String
  Dim Result() As String
  Set WSH = CreateObject("WScript.Shell")

  ChDir "C:\Windows\fonts" 'このフォルダの一覧を出したい

  Set exec = WSH.exec("cmd /c dir /s /b ")
  Result = Split(exec.StdOut.ReadAll, vbCrLf) '一覧を配列に取り込む
  For r = 0 To UBound(Result)
    Cells(r + 1, 1) = Result(r) '結果をワークシートに書き込む
  Next

  Set wExec = Nothing
  Set WSH = Nothing
End Sub
0861名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 10:07:14.86
>>848-849
>>845です
なるほど
セルが変更された時に反応するマクロの途中でセルを「全て」に書き換えようとするから無限ループになるのですね
想定してた動きになりましたけどFor〜の使い方はまだ分からないので勉強しようと思います
ありがとうございました
0862名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 10:15:39.76
>>848-849
>>845です
たびたび、すみません
フィルタリングされる時の再計算を止めようと
教えていただいた>>848-849

2行目 Application.Calculation = xlCalculationManual
End Subの上 Application.Calculation = xlCalculationAutomatic

を追加したのですが画面左下に再計算と表示されます
追加する前より処理がやや速くなった気がするのですが
上記で再計算は止まっているのでしょうか
0863名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 10:31:06.72
>>862
止まっている
ただ、設定をしただけなので最後に再計算していない

Application.Calculation = xlCalculationAutomatic
calculate '再計算の指示
endsub

ただフィルター掛けるだけなんで最後に再計算別にしなくてもいいと思うけど、
(subtototalとかは影響するけど)
気持ち悪いならcalculate一行入れると消えるはず
0865名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 10:56:23.87
>>863
それが不思議なことにxlCalculationManualで再計算ストップしているはずなのに
一番下の合計欄でSUMIFSしてるのですがフィルタリングされて見えている数値だけの合計に再計算されているんです
0866名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 11:01:49.23
>>865
じゃあendsubの後に再計算していると思う
あまり深く探っても意味ないぞ

不安でどうしても知りたいなら、めちゃくちゃ重いデータを作って検証してみると良いかもしれない
0867名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 14:26:28.85
>>851
こんな落とし穴あったのか
過去にテーブルが使われてるブックでFilterModeでチェックしてるマクロを作った気がする…

>>853
テレワークは出社しないってだけで暇じゃないんだが
0880名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 17:04:16.05
なおしてみた

Sub test()
  Dim WSH
  Dim wExec
  Dim cmd As String
  Dim Result() As String
  Dim temp() As String
  Set WSH = CreateObject("WScript.Shell")

  ChDir "C:\Windows\fonts" 'このフォルダの一覧を出したい

  Set exec = WSH.exec("cmd /c dir /s /b ")
  Result = Split(exec.StdOut.ReadAll, vbCrLf) '一覧を配列に取り込む
  For r = 0 To UBound(Result) - 1
    Cells(r + 1, 1) = Result(r) '結果をワークシートに書き込む
    temp = Split(Result(r), "\")
    Cells(r + 1, 2) = temp(UBound(temp)) 'ファイル名
    temp = Split(Result(r), ".")
    Cells(r + 1, 3) = temp(UBound(temp)) '拡張子
  Next

  Set wExec = Nothing
  Set WSH = Nothing
End Sub
0881名無しさん@そうだ選挙にいこう
垢版 |
2020/05/05(火) 17:08:09.73
=SUBSTITUTE(RIGHT(SUBSTITUTE(A1,"\",REPT("\",LEN(A1))),LEN(A1)),"\","")
ファイル名の最初と最後に空白がないなら
=TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",LEN(A1))),LEN(A1)))
0887名無しさん@そうだ選挙にいこう
垢版 |
2020/05/06(水) 10:08:34.22
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

VBAで例えばSheets(“Sheet1”).Activateと指定すること多いですが
使用者が勝手にシート名を変更するとそのシートが無いのでエラーになります
シート名他シートの並び順等勝手に変えられても動作するようにできないでしょうか
0888名無しさん@そうだ選挙にいこう
垢版 |
2020/05/06(水) 10:37:21.35
>>887
特定位置のセルに特定の文字列があるかどうかを
Set カレントシート = Nothing
For each シート in WorkSheets
  If シート.Range(判定セルアドレス).Value = 特定文字列 Then
    Set カレントシート = シート
    Exit For
  End If
Next
でブックを該当するシートが見つかるまで調べるぐらいかな?
見つからなければカレントシートはNothingのまま。
条件は当該ブックにひとつだけ該当するように。
シートの保護を利用して変更できないようにするのが望ましい。
これぐらいかなあ。
0889名無しさん@そうだ選挙にいこう
垢版 |
2020/05/06(水) 10:46:51.84
>>887
ワークシートのCodeName (オブジェクト名) なら勝手に変更される可能性は低くなるから、たいがいはこれで十分
VBAにパスワードをかけて保護しとけばまず大丈夫
それがだめならシートの内容で判断するぐらいしか方法がない
0891名無しさん@そうだ選挙にいこう
垢版 |
2020/05/06(水) 12:34:48.19
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

日本語環境で作成したVBA入りのExcelファイルを中国語PC等日本語以外のPCで
開くとVBAを実行した時にVBAで表示させる日本語が文字化けしてしまいます
各シートの日本語は正常に表示されているのでVBAの日本語だけが文字化けしていると思われます
VBAは多言語で利用できないのでしょうか
0894名無しさん@そうだ選挙にいこう
垢版 |
2020/05/07(木) 13:31:30.47
値のみの減算コピーをよく使うのでマクロボタンに登録して使っていました。
EXCEL2013までは下記のマクロで使えたのですが、2019ではセルを指定していないと実行時エラーが出てしまいます。
どのように書き直したら良いですか?

Sub 減算COPY()
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
End Sub
0903名無しさん@そうだ選挙にいこう
垢版 |
2020/05/08(金) 11:04:33.62
>>895-899
説明不足ですみません
やりたいことは以下のような内容です。

A1に100の数値が記述されており
A2に50の数値が記述されている
A2を選択コピー
A1を選択した段階で

Sub 減算COPY()
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
End Sub

このマクロを登録したボタンをクリックするとA1の値が50になるというものです。

ホームボタンのクリップボードの形式を選択して貼り付け⇒値⇒減算⇒OK
と同じなのですが、頻繁にこの減算もしくは加算の作業があるのでボタンに登録しておき、
ワンクリックですむようにしたいのです。
以前のEXCELでは出来たように思います。
0904名無しさん@そうだ選挙にいこう
垢版 |
2020/05/08(金) 11:18:05.50
>>903
最初から言ってる通り、セルを選択すれば良い
セルの選択をしたくないならシートを選択スレば良い

Sub 減算COPY()
ActiveSheet.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
End Sub

にしても変なエラー出てるな
https://i.imgur.com/B4amY0w.png
0905名無しさん@そうだ選挙にいこう
垢版 |
2020/05/08(金) 12:53:30.95
以前でもできなかったんじゃないのかな
形式を選択して貼り付けが選べない場面で実行するとエラー出てたと思うよ

コピーしたけどESC押してコピーモード抜けてる時とか(cutcopymodeがfalseの時)
セル以外選択してる時とか(typename(selection)がRangeじゃない時)

そんな感じじゃないのかな
0906名無しさん@そうだ選挙にいこう
垢版 |
2020/05/08(金) 12:58:14.06
>>904
レスありがとうございます。
コピーと減算(加算)貼り付けのセルは都度変わりますからマクロに書くのは難しいです。
選択コピー後に貼り付けるセルを選んでおいてマクロを走らせるのは出来ませんか?
0907名無しさん@そうだ選挙にいこう
垢版 |
2020/05/08(金) 13:07:59.09
>>905 その1
レスありがとうございます。
今となっては検証できませんが、1998年には出来たような気がします。
その時マクロ記録で作った以下のようなユーティリティ集があるのですが、重宝して使っていました。


' 数式COPY マクロ
'
Sub 数式COPY()
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub

' 加算COPY マクロ
'
Sub 加算COPY()
Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks _
:=False, Transpose:=False
End Sub

' 減算COPY マクロ
'
Sub 減算COPY()
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
End Sub
0908名無しさん@そうだ選挙にいこう
垢版 |
2020/05/08(金) 13:09:40.31
>>905その2
Sub EnterKeyAssign()
Application.OnKey "{ENTER}", "RightMove"
Application.OnKey "~", "RightMove"
End Sub

Sub RightMove()
If TypeName(Selection) = "Range" And _
TypeName(ActiveSheet) = "Worksheet" Then
If ActiveCell.Column <> 256 Then
ActiveCell.Offset(0, 1).Select
End If
End If
End Sub

'[Enter] キーの設定を既定に戻すマクロ
Sub EnterKeyReAssign()

Application.OnKey "{ENTER}"
Application.OnKey "~"
End Sub
Sub 行列入替copy()
'
' 行列入替copy Macro
' マクロ記録日 : 1998/8/15a
'
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub
マクロ記録日が1998年です
0909903
垢版 |
2020/05/08(金) 13:16:07.53
最近のEXCELはツールバーに数式コピーや値のみのコピーを登録できますから
しばらく使っていなかったのですが、減算や加算のボタンはないので久しぶりにかっての
マクロを使ってみたわけですが特に減算コピーはよく使うので何か方法がないかと思い
質問しました。
906と907を合わせてユーティリティ集として便利に使っていた記憶があるのですが
EXCEL2013では使っていないかもしれません
0911903
垢版 |
2020/05/08(金) 13:36:23.70
>>910
ああ!!
ありがとうございました。
ショートカットキー登録で出来ました。
そう言えば以前もマクロボタンではなくショートカットキーで実行していたのかもしれません。
これで少し省エネが出来ます。
誠にありがとうございました。
0912名無しさん@そうだ選挙にいこう
垢版 |
2020/05/09(土) 13:13:45.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2006
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
文字列になっている和暦の日付を、日付データに変換する方法を教えてください。
例えば今日なら02.05.09(文字列)を2020.5.9とか43960にする方法です。
業務システムから取り出したデータを使いたいのですが
日付も文字列でしか取り出せません。
LEFTやMID、FINDを駆使して1988を足したりする方法しか浮かばないので、
よい方法があれば、お願いします。
0923名無しさん@そうだ選挙にいこう
垢版 |
2020/05/09(土) 15:14:59.62
DATEVALUE関数の難点は、日付と認識してくれないパターンがある事なんだけど、R02.05.09なら大丈夫か
平成令和どっちもありだと、どうやって平成と令和を区別するかが決まってないといけないね
平成のままの数値なら、例えばH32.05.09でも通るんだけど
0927名無しさん@そうだ選挙にいこう
垢版 |
2020/05/09(土) 16:15:09.57
>>926
>VALUEじゃなくて*1を使ったのはなぜですか
タイプ数が短いから

>*1じゃなくてDATEVALUEを使ったのはなぜですか
質問の意図が分からない
文字列を*1してもエラーが返るだけだが
0933名無しさん@そうだ選挙にいこう
垢版 |
2020/05/09(土) 16:48:24.32
>>930
出来ました!ありがとうございました
0935名無しさん@そうだ選挙にいこう
垢版 |
2020/05/09(土) 19:36:19.45
あくまで個人的な意見だけど、DATEVALUEは明示しておいた方が好み
*1で代用すると、ぱっと見、日付変換式ってわかりにくいから、後で見たときに?てなる
0939名無しさん@そうだ選挙にいこう
垢版 |
2020/05/09(土) 20:47:08.88
便乗で質問ですが
VBA 編集モードでマクロ止めてるのに
2019は勝手に動いてて困るのですが、これって仕様ですか?
特定のシートでactiveになったら保護かけるマクロが
編集モードにしてるのに
いろいろシートを移動してる間に有効になっててイラつきます
0942名無しさん@そうだ選挙にいこう
垢版 |
2020/05/09(土) 22:19:23.04
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

1つのセル同士で複数の検索値に合った複数の結果を出す方法があれば教えてください。
A1には08:00、14:00、16:00、18:00、19:00または空欄のいずれかのデータになります。
A1の文字列に合わせてB1に08:00なら0812、14:00なら1416という風にAセルに合わせた値にしたいのですがどのようにすればいいでしょうか?
A1が空欄の場合はB1も空欄としたいです。

IF(COUNTIFを使用すると1つだけには対応できるのですが、複数の検索値に合った複数の結果となるとどうすればいいか分かりません。
0947名無しさん@そうだ選挙にいこう
垢版 |
2020/05/10(日) 01:35:16.12
>>939
Application.EnableEventsで任意にイベントを止める方法もある
0948名無しさん@そうだ選挙にいこう
垢版 |
2020/05/10(日) 11:01:19.67
>>945
ありがとうございます。
詳細に書いてなく申し訳ないのですが、文字列の中に時間表記が含まれているため、そこのみを抽出して置換する必要がありました。
少し長い表記でしたがIF(COUNTIFを入れ子にする事で解決できました。
0949名無しさん@そうだ選挙にいこう
垢版 |
2020/05/10(日) 11:34:00.82
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

1コマ目 Excel
2コマ目    Excel
3コマ目       Excel
4コマ目           爆発

どう?
DirectXでもいいです。
0950名無しさん@そうだ選挙にいこう
垢版 |
2020/05/10(日) 11:38:44.66
間違えた。

1コマ目  Excel
60コマ目    Excel
120コマ目       Excel
180コマ目           爆発

60fpsで。
0953名無しさん@そうだ選挙にいこう
垢版 |
2020/05/10(日) 14:04:46.78
>>950
B1:=NOW()
D1:=IF(NOW()>A1+"00:00:08","           爆発",IF(NOW()>A1+"00:00:07","       Excel" ,
   IF(NOW()>A1+"00:00:06","   Excel",IF(NOW()>A1+"00:00:05.0166666666666667","Excel",""))))
としておく
F9を押し、A1にB1を値のみコピーを5秒以内に行い、あとはExcel愛をこめてF9を1/60sピッチ程度でひたすら連打
最初のF9から約5秒後にスタートするぞ 見逃すな
0954名無しさん@そうだ選挙にいこう
垢版 |
2020/05/10(日) 19:27:58.04
>>953
いや、それだとExcelの描画がついてこれないでしょ。
DirectXでもいいってのはそういう意味。

>>951
だろうね。
でもニッチ過ぎるから、細かく書いても雑に書いても同じだと思うよ。
0962名無しさん@そうだ選挙にいこう
垢版 |
2020/05/11(月) 19:49:44.33
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
シートを跨いだ数式を別なbookにコピーすると、コピー元のbookを参照した関数に変わってしまいます。
book1で「=Sheet1!A1」と書いた数式が、book2だと「=[book1.xlsx]Seet1!A1」となってしまいます。
数式の表示をしてからコピーしても上記のようになります。
他のbookを参照しないよう、数式をそのまま別なbookにコピーする方法が有れば教えてください。
0966名無しさん@そうだ選挙にいこう
垢版 |
2020/05/11(月) 21:01:46.19
ちなみに同じ理屈で
更新できない外部リンクがー

とか出てきたときも
検索
.xls

ブック
数式

という条件で検索するとどのセルに
[book1.xlsx]
が残ってるかがわかるよ
0967名無しさん@そうだ選挙にいこう
垢版 |
2020/05/11(月) 21:04:30.09
一括置換する時は2つのセルだけ選択して消した時にエラー出ないの確認してから残りをやったほうがいい

リンク取った時にエラー出るとひたすらキャンセル連打することになる
0971名無しさん@そうだ選挙にいこう
垢版 |
2020/05/11(月) 22:26:23.15
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可・
https://github.com/kaz-ogiwara/covid19/tree/master/data
ここのdata.jsonを使って、全国・日別の棒グラフを作成したい。
私的ですが棒グラフに「この日はこんなことがありました。」
といったコメントを追加したく。よろしくお願いいたします。
0972名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 01:49:32.10
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 すこーし
【4 VBAでの回答の可否】 可

https://i.imgur.com/f7UuNzk.jpg
写真のような表で、同じ人がそれぞれ10枚の色が違う番号が振られているカードを持っているとして、(赤なら1.2.3.4のカードを持っている)
最終的に色は関係なく、その人が持っているカードの番号の種類をセルに表示したい場合、
どのようにしたら良いでしょうか?(写真なら、1.2.3.4.5.6.9.10のカードを持っているとわかるようにしたい)
色々悩んだけどわからなかったので力を貸してください。
0975名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 08:37:15.19
>>973
言葉足らずで申し訳ないです、こういうデータが複数人出てきたときに、それぞれの人に応じてなんの番号を持っているのかを出したいです。
0977名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 16:31:46.17
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
Aはb+c...で構成されていてAの製造実績をいれるとb.cなどの消費実績が自動で分かる、これらが100品種くらいあるのですがお勧めな実績管理方法教えて下さい
0978名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 17:21:50.66
材料がある程度固定なら、縦側に製品、横側に材料並べて交差するセルに消費量書き込んだ表用意しといて表引き
0979名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 17:33:12.80
>>978
結構製品によって構成品が違うので難しいですね
1シートに構成マスタなるもの作って別シートの消費情報に
よって在庫情報を変動させる手立てはありますか?
0980名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 20:26:43.79
>>979
親子関係を羅列したシート(機能部分)
単品部品を羅列しているシート(出力部)
製造単位を羅列しているシート(入力部)

という構成にする

入力部には
[製造単位の品名、コード][製造実績]
というリストにする


親子関係を羅列したシートに

[製造単位の品番、コード][単品の品番][その製造単位でその単品の員数] (ここまではリスト) [sumifsで入力部から製造単位の実績数を引用] [ 引用された実績数×員数](関数)

という風に5列つくる

で、出力部は
[単品部品][sumifsで親子関係シートから引用]
というシートにする
0981名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 20:50:44.99
>>980
ありがとうございます!
ふんわりと理解はできるんですがいざ作れるかとなると、、すいません
何か例になるサイトか参考例とかありますか?
0983名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 21:03:51.12
80 77 55
79 43 84
50 50 50
66 41 41

みたいな感じでデータが入っていて、
行の最大値を列ごとに個数を数えたいのですがどうすればいいですか?
このデータでいうと左の列が3、中が1、右が2という数字を返したいのです
VBAは使いません
0985名無しさん@そうだ選挙にいこう
垢版 |
2020/05/12(火) 21:13:50.83
>>984
80 77 55 なら左の列が最大値
50 50 50 なら全部最大値になりますよね
左の列が最大値になるときの左の列の個数とかを数えたいのです
0995名無しさん@そうだ選挙にいこう
垢版 |
2020/05/13(水) 15:18:03.36
Twitterで方眼紙の評価悪いんだが、見積書や工程表で見た目と入力しやすさと軽さを全部成立させる方法って何があるんだろ
0997名無しさん@そうだ選挙にいこう
垢版 |
2020/05/13(水) 21:31:30.32
>>995
相手に入力依頼したり見積額を他に使い回すのでなければ
エクセル方眼紙でもなんでもいいんじゃね?

そのファイルから数字拾わせたりそこに金額入れろって人に渡してるならふざけんなと思うけど
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 105日 1時間 42分 46秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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