X



Excel総合相談所 136

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2019/07/27(土) 17:47:29.09
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

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

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

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

【質問不可】Excel総合相談所スレの雑談・議論スレ
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80
0332名無しさん@そうだ選挙にいこう
垢版 |
2019/08/21(水) 22:06:36.19
ずっとフリーソフトを使っていて最近になってエクセル2016を使い始めたんだが
画面右端のセルが少ししか見えてない状態で、そのセルをワンクリックしてもセルが左に自動的にズレてセル全体が見えるようにはならない仕様なのかな?
ダブルクリックすれば思うような動きはしてくれるけど、設定等とかで変更できるのなら知りたい
0338名無しさん@そうだ選挙にいこう
垢版 |
2019/08/21(水) 23:16:23.65
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010,2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

条件付き書式って、自分自身のセルのことしか無理っぽいです。
ひとつ上のセルを条件にするってことと、できればBからZまで一括設定がしたいのですが
何か方法あるでしょうか?
0377名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:03:05.94
>>374
毎回範囲を選択した状態にするのも面倒なら
入力したい範囲のセルの書式設定の保護タブで、ロックのチェックを外し
校閲タブのシートの保護で、ロックされたセル範囲の選択のチェックを外すと
ロックされていないセル範囲=入力したい範囲しかカーソルが動くことはなくなる。
0378名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:20:09.13
>>376
1 B2:Z11のセル範囲を選択する
2 リボン→ホーム→条件付き書式→新しいルール→数式を使用して〜
3 数式を入れる枠に =B1="出席" を入力
4 [書式]ボタンをクリック
5 塗りつぶしのタブをクリック→塗りつぶす色を指定→[OK]をクリック
6 [OK]をクリック
B2:Z11を選択している状態で、数式にB1と指定したところがミソです。
0379名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:21:54.75
>>376
B4セルの条件付き書式の条件の数式に
=B3=”出席”
でええんとちゃう?
なんでそのセルの値しか参照できないと思い込むのか分からん
0380名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 19:51:33.75
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

条件で別領域に取り出すSMALL関数について質問があります。
B店舗夜間 25000
A店舗夜間 30000
Z店舗夜間 35000
Y店舗昼間 50000
Z店舗昼間 75000
A店舗昼間 100000
B店舗昼間 200000
上記のような売上表があって、
別セルに"A店舗夜間"を除外して、以下の式を別領域で計算していました。
={SMALL(IF(A$1:A$100<>"A店舗夜間",B$1:B$100),ROW(A1))}

条件に"B店舗夜間"も除外対象に追加したいのですが、うまくいかないのでご教示いただければ幸いです。
0381名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 21:00:07.09
>>380
なんでフィルタオプション使わないの?
0382名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 22:01:10.22
>>381
ご教示ありがとうございます。
確かにフィルターオプションでできました。
ただ、元の式から条件が追加になるだけだったので、式の軽微な修正でできるかと思ってました。
0383名無しさん@そうだ選挙にいこう
垢版 |
2019/08/24(土) 23:25:04.36
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

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

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

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

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

今晩、パソコンで試してみます!
色々とありがとうございます。
0389名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 14:25:41.74
【1 OSの種類         .】 Windows 10
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 希望します

i = Int(100 * Rnd + 1)
変数 i に 1から100までのランダムな数値入れて
その内、NGとなる数字を30個、A1:A30に入力します。
そして i に A1:A30 の値を参照させて判定させたいのですが
複数のセルを参照することができません。
If i = Range("A1:A30") としても、参照されるのがA1だけになってしまいます。
If i = Range("A1,A2,A3…")としても、一緒でA1だけになります。
参照するセルが複数の場合、どのように指定すれば良いのでしょうか?

また、マクロではあまり、セルに入力されている値を参照するものでも
ないのでしょうか?分かりにくい説明ですみません、よろしくお願いします。
0390名無しさん@そうだ選挙にいこう
垢版 |
2019/08/25(日) 15:21:40.18
>>389
forで回すとか、WorksheetFunctionでやるとか

On Error Resume Next
hage = WorksheetFunction.Match(i, Range("A1:A30"), 0)
On Error GoTo 0

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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



Sub Macro2()

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

Sheets("***").Select

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

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

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

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

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

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

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

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

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

色々とありがとうございます。
0425名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 12:15:10.15
>>424
横じゃなくて縦並び
手帳と同じ
日付,メニュー
2019/8/28,オムライス
2019/8/29,ハンバーグ定食
って感じ
0426名無しさん@そうだ選挙にいこう
垢版 |
2019/08/28(水) 12:50:53.91
カレンダー作る時
日付を“1”で入れるか“2019/9/1”で入れて
書式にd入れるのは見かけ同じで意味が違う
後者の方が応用させやすい
■ このスレッドは過去ログ倉庫に格納されています

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