X



Excel総合相談所 134
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@そうだ選挙にいこう
垢版 |
2019/02/15(金) 15:31:58.60
▼━質問テンプレ (出来れば使ってね) ━━━
【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
0005名無しさん@そうだ選挙にいこう
垢版 |
2019/02/16(土) 10:34:51.92
前スレでの質問を再度書きます

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

A B    C 
1 名前   性別
1  (空欄)
1 誕生日
2  名前  (空欄)
2  住所  方書
2 (空欄)
2 身長   体重
3...
のようになってるものを、左端の番号毎に一列にする方法はありますか
 身長体重の行だけは両方空欄なら、行自体が無いというものになってます
 追記:1番号につき最大4行、データ項目は最大7です
0008名無しさん@そうだ選挙にいこう
垢版 |
2019/02/16(土) 11:06:56.90
>>7
D〜K列を作業列に使う方法
まず1行目を空けて、データがA2から始まるようにしてから、以下のセルに以下の数式を入れて、下にガーっとコピペ
すると横並びのデータができるから、値貼り付けして空行を削除
これでいいかな
D2=IF(AND($A1<>$A2,A2<>""),A2,"")
E2=IF(AND($A1<>$A2,B2<>""),B2,"")
F2=IF(AND($A1<>$A2,C2<>""),C2,"")
G2=IF(AND($A1<>$A2,B3<>""),B3,"")
H2=IF(AND($A1<>$A2,C3<>""),C3,"")
I2=IF(AND($A1<>$A2,B4<>""),B4,"")
J2=IF(AND($A1<>$A2,$A2=$A5,B5<>""),B5,"")
K2=IF(AND($A1<>$A2,$A2=$A5,C5<>""),C5,"")
0009名無しさん@そうだ選挙にいこう
垢版 |
2019/02/16(土) 12:49:58.59
数式で横列に下行のデータを反映
ドラッグ
値貼付け、不要となった行の掃除
ですね
やってみるとわかる(気がしてる)のですが
自分では思いつきません、ありがとうございました
0010名無しさん@そうだ選挙にいこう
垢版 |
2019/02/16(土) 15:56:04.28
【1 OSの種類    】 Windows7
【2 Excelのバージョン】 Excel2010
【3 VBAが使えるか  】 勉強中
【4 VBAでの回答の可否】 可

public sub mkData(d1 as long, d2 as long, d3 as integer, d4 as integer)
***
end sub

public sub jikko()
call mkData(5000,2000,100,100)
end sub

こういうプロシージャを書いて、jikkoを実行しようとするとmkDataのプロシージャ名のところが
黄色くなり、「ユーザー定義型は定義されていません」と出てきてしまいます。
引数を指定すると出てくるようなんですが、何がダメなのでしょうか?
0015名無しさん@そうだ選挙にいこう
垢版 |
2019/02/16(土) 23:39:55.28
ピボットテーブルが優遇されてるように感じる。
イベントもいっぱいあるしヘルプにも良く出てくる。

だけど俺、使ったことないし、どんなのかあまりわかってない
ピボットテーブルってそんなにいいものなの?
いろんなジャンルの仕事でつかうものなの?
0016名無しさん@そうだ選挙にいこう
垢版 |
2019/02/16(土) 23:49:35.32
>>15
死ぬほど便利だから絶対に使えるようになっておいたほうが良い
ただ、結構柔軟性が無いので「何が出来ないか」を知っておかないと、
ピボットで捏ねくり回した挙げ句、手作業で最初から作るという事をするハメになる
0019名無しさん@そうだ選挙にいこう
垢版 |
2019/02/17(日) 00:43:20.73
ピボットって簡単手作業でグリグリいろんなこと試せるところがいいんじゃないの?
最初から表現方法決まってるならvbaがよさそうだけど試行錯誤して自分の表現したいグラフを探れるところがいいところだと思うんだけど。
0020名無しさん@そうだ選挙にいこう
垢版 |
2019/02/17(日) 00:47:43.29
ああちょっと語弊あったかな
一回目は試行錯誤するけど、2回目はvbaでパーって出す感じ。毎月同じ資料作るときとかね
一回目からvbaは使わない
0023名無しさん@そうだ選挙にいこう
垢版 |
2019/02/17(日) 11:21:34.60
>>21
人に丁寧に聞く姿勢があれば、誰かが手取り足取り教えてくれる
単純な物なら1日で出来るようになると思う
君の態度だと誰も教えてくれないだろうから、いつできるようになるかは良く分からない
002521
垢版 |
2019/02/17(日) 12:27:50.29
ありがとう!がんばるわ!
0026名無しさん@そうだ選挙にいこう
垢版 |
2019/02/18(月) 19:49:01.91
スペシャリスト2013は受かったんだけどエキスパートって難しい?
セルの大きさ変えられるのも知らないとこから使い始めて2ヶ月でスペシャリストはいけた
点数は960点台
どのくらいかかるか見当つけたい
簡単なマクロなら組めるとこでグラフとブックの扱いは苦手
0027名無しさん@そうだ選挙にいこう
垢版 |
2019/02/18(月) 21:59:17.59
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
VBAを使い共有フォルダにある別のPCで開いているブックをReadOnlyで読み込み専用で開いたあとに
読み込み専用ブックを消そうとするとApplication.DisplayAlertsを使っても警告文が出ます。
読み込み専用ブックのみを消すことは可能なのでしょうか?
0028名無しさん@そうだ選挙にいこう
垢版 |
2019/02/18(月) 22:04:22.76
>>26
エキスパートとスペシャリストは範囲が違うだけでそんなにレベルは違わないと思うよ
内容がほぼ重複してないからエキスパートも新しく覚えるつもりで勉強してみれば
スペシャリストで960点取れるなら余裕よ
0029名無しさん@そうだ選挙にいこう
垢版 |
2019/02/18(月) 22:13:34.73
>>26
吸収はやいな

>>27
×読み込み専用
○読み取り専用

×消す
○閉じる

上書き保存せずに閉じるなら、以下はどうかな
保存フラグを無理やりtrueにすることで上書き保存の警告を出させない
ActiveWorkbook.Saved = True
ActiveWorkbook.Close

実際には以下のようにopenしたbookをsetしておくと思う
set readbook = Workbooks("foo.xlsx").open
readbook.Saved = True
readbook.Close
0031名無しさん@そうだ選挙にいこう
垢版 |
2019/02/18(月) 23:54:44.36
excel2016 64bit
win10 64bit使ってます
officeのアップデートバージョン1901以降かなりexcelが重くなりました。
起動後、常に再計算ばかりです
オプションの言語から、英語を既定にする若しくは、一つ前にダウングレードすると収まりますが原因は何でしょうか?
0033名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 03:15:17.52
エクセルの保護ってどれくらい厳重なのか知りたいです。

VBA駆使して、かなり業務効率がよくなるシステム(.xlsmファイル)を作ったとして、
それを使えばみんなの無給残業がなくなるだろうから使ってもらいたいんだけど、
「それ、(私)が作ろうとしてたのがぜんぜん使えないポンコツだったから俺がまともに
改良したんだよ。みんな使って」と、手柄を横取りしそうな先輩がいます。
かってな改良(起動時に「○○(先輩名)作」と表示されるだけのくだらない改変)をされるのが目に見えてる
ので、それを阻止したい(ただの私のケチな性格のせいですが)です。
VBAにパスワード保護するとしても、数打ちゃ当たる式で突破を試みるフリーソフトを使えば
簡単に破られてしまうものなんでしょうか?

文章か、ってくらいの長い文字列でパスワードをかければ、VBAの中身までは見られないってことは
ないでしょうか?
所謂VBAの保護以外に、なにかいい改変阻止ガードってあるのでしょうか?
0034名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 04:10:43.35
>>33に追加なんですが

エクセルだけで作った業務用のソフトを有料で売ってる人とかいるじゃないですか。
ああいう人は、もし簡単にソースを見られたら食いっぱぐれると思うんですが、
どういうプロテクトをしるのでしょうか?
できれば私もマネしたいです。
0035名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 05:33:59.90
>>33
パスワードを固定しなきゃ良いんじゃないの?
可変パスワードを作る式をどこかのセルに仕込んどけば?

あとファイル閉じる前に毎回
BuiltinDocumentProperties("Author").Value = "オレ様 "
とかも未熟な先輩には有効かもね
0037名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 07:31:56.46
>>33
> エクセルの保護ってどれくらい厳重なのか知りたいです。
保護としてはほぼ無意味
MS自身がこんなことを書いてるくらいだし
https://cybersecurity-jp.com/wp000/wp-content/uploads/2018/07/images08.jpg
読み出しパスワードは暗号化もするしそれなりの意味はあるけどパスワード知ってなきゃ使えないから人に使わせるのは無理だし

そもそも
> VBA駆使して、かなり業務効率がよくなるシステム(.xlsmファイル)を作った
としたら上司にこういうの作ったんだけどどうでしょうと相談すればいいだけ
0039名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 07:49:57.33
>>33
パスワード総当りしなくても中身を見る方法はある
誰が作ったか分かるようにしたいなら自分が作ったと言って配布するとか周りに根回ししておくとかアナログな対応が楽だと思う
0040名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 11:02:49.79
>>33
vbaだけじゃ無理
VB.NETで作ってdllにして呼び出すのが一番楽で確実に隠蔽できるけど、
多分それすらしんどいと思うから

>>37
みたいに上司に相談が良いと思う
で、「知らない人が勝手に改造するとファイルが破損する可能性もあるので絶対に辞めてくれ」
と釘を差しておけば大丈夫
0041名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 11:03:34.20
「確実に」ってのはvbaコードを横取りする程度からの防衛策としてね
dllの中身見れるような人ならvbaぐらい書けるという前提
0042名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 12:46:22.80
唐突にすみません。sumif関数について教えてほしいです!
合計範囲の部分がセル参照での値の場合、結果が0で返るのですがどうすれば良いでしょうか?
ex:a列1&#12316;3に月、火、月。b列1&#12316;3に100、101、102。c1&#12316;3列にb1×2、b2×2、b3×3の時、=sumif(a1:a3,月,c1:c3)とすると204にならず0となってしまいます。どうすれば204になりますか?
0044名無しさん@そうだ選挙にいこう
垢版 |
2019/02/19(火) 16:46:57.21
>>43 そうですね。この場合506になりますね。※b3×2と書いたつもりでした、すみません。
画像も見ました!c列の値はセル参照を用いた数式(=b1×2)のような形で記載されてますか?上記のような場合だと、0で表示されてしまいます。。
0048名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 00:51:58.17
すいません、Excelが上手くなるコツってありますか?

簡単な関数がわかる程度ですがVBAなどもマスターしたいと思います。
0049名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 01:08:11.28
ある程度目標を持って勉強した方がいいね
vbaと言っても文字列の変更やファイル操作など非常に広い範囲で色々できる
まずは目標を決めてみるのがいいんじゃないかな
0051名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 16:13:56.38
今日になって条件付き書式の文字色が反映されてもすぐ戻るバグが発生するようになったんだけど俺だけ?

例えば、全ての文字色を白にしてて
VBAでネットから情報を取り込んで数値が条件にあっていれば、文字色が黒になって見えるようにしてるんだけど

取り込んだ瞬間は黒文字になるんだけど、アクティブにしたら白字に戻るみたいな現象が起こるようになった
誰か同じ人いる?Excelは365つかってる
0052名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 17:35:07.96
おきんぞ
新しいブックでも再現するの?
0054名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 18:53:39.47
エクセルに入力されているセルの一部のデータが、入力されているのにも関わらず罫線や文字が画面上表示されないバグが起こっていて困っています。
セルを確認するとデータは間違いなく入力されていて、印刷するとその通り出てきます。
症状は今朝からで、エクセルのバージョンは2016です。
0056名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 19:00:54.55
新規ブックで再現するのそれ
しなきゃブックがおかしいんじゃないの
0057名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 19:09:14.31
>>55 してみたのですが、変わらずです、、

>>56新規ブックでは再現出来ませんでした。10年以上使っているブックで、今までこんなことはありませんでした。
一部のシート上で当問題が発生します。症状が起こるシートでは、新たに文字を入力しなおしても、ロールアップ、ロールダウンで消えてしまいます。
0058名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 19:23:48.40
>>52
確かめてみたら新しいブックだとならないや

でもバックアップ用のファイルも同じ現象なったから、たぶん何かドライバとかでシステムが変わったのかもしれない
もう少し検証してみる
0061名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 21:31:24.87
IDすらないんだから安価くらいちゃんとつけない?
誰が誰に言ってるのかわかりにくいわ
安価のつけ方は半角で>>だぞ
>>61
みたいにするんだぞ
0062名無しさん@そうだ選挙にいこう
垢版 |
2019/02/20(水) 22:19:28.40
さすが!オレっ!!  誰も褒めてくんないから自分で褒める

俺ならできる俺ならできる俺ならできる俺ならできる
そおゆう暗示を壁にぶつかったら唱える
決して人前で声に出したりはしないけど、悩んだら唱える

それ以前に何人もが挫折した案件 たらい回しで巡ってきた案件
試行錯誤したりスクラップ&ビルド繰り返して・・・ 成し遂げる
そこでつい冒頭の「さすが!オレっ!!」 が出る
やればできるじゃ〜ん、おれ えへへへへ

いやしかし、おれに出来るんなら誰にだってできる
思い上がらないよう自分を戒める     そんな日々の繰り返しさ! ってやんでいっ

  いや、Excelのハナシじゃ無いんですけどね
0064名無しさん@そうだ選挙にいこう
垢版 |
2019/02/21(木) 02:19:46.28
>>51の症状はこんな感じ

正常時の表示。セルの背景がカラフルなところはちゃんと黒字になっている
https://i.imgur.com/N53N5C9.png

Excelをアクティブにすると白字になる
https://i.imgur.com/lDvlU3E.png


・正常表示されてるときにスクロールすると文字が半分だけ白字になったりするから描写的なバグっぽいんだよね
https://i.imgur.com/tzD09h1.png

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


昨日から急になったんだけど、なんだこれ…
0065名無しさん@そうだ選挙にいこう
垢版 |
2019/02/21(木) 09:57:38.55
index関数を使って、テーブルの範囲を記述していたのですが、テーブルの数が膨大になってくるとメンテナンス性も悪いので、なにか短縮できる方法とかありますでしょうか。
0066名無しさん@そうだ選挙にいこう
垢版 |
2019/02/21(木) 10:15:54.09
テーブルの数っていうのが参照先の行が増えてるのか列が増えてるのか参照するシートが増えてるのかで意味が違ってくる

offsetとcountとか組合せて使えば参照範囲を可変に出来たはず
参照シートを変えたい場合はINDIRECT使って参照シート名を指定出来るようにすればメンテしやすい
0068名無しさん@そうだ選挙にいこう
垢版 |
2019/02/21(木) 10:26:27.31
>>67
ありがとうございます。
テーブルに名前をつけて、それを羅列するって感じですね。

何か範囲を別持ちして、その別でもったものを指定するみたいな方式がないかと考えていましたが、そこまで便利なものはさすがになさそうですね。
0070名無しさん@そうだ選挙にいこう
垢版 |
2019/02/21(木) 11:30:47.73
>>64
再描画が止まってる気がする

イミディエイトウィンドウに以下を一行ずつ、コピーペーストしてenter
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
イミディエイトウィンドウの開き方
https://www.239-programing.com/excel-vba/basic/basic024.html

後hあアクセラレータを無効にしてみる
https://www.chips-shop.com/inkpedia/3504/#i
0075名無しさん@そうだ選挙にいこう
垢版 |
2019/02/22(金) 00:08:48.10
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 13
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

複数のシートを統合シートに転記してますが
数式や罫線をコピーせずに値のみ移したいです
色々試したがうまくいかなっかた
どうしたらいいですか?
おねがいします
下記コードを使っています

Sub 統合へ()
Application.ScreenUpdating = False
Dim 全シート As Worksheet
Worksheets("統合").Rows("2:" & Rows.Count).Clear
For Each 全シート In Worksheets
With 全シート
If .Name <> "統合" Then
.Range(.Cells(2, 1), .Cells(Rows.Count, 1) _
.End(xlUp).Offset(, 6)).Copy _
Worksheets("統合") _
.Cells(Rows.Count, 1).End(xlUp).Offset(1)
End If
End With
Next

End Sub
0076名無しさん@そうだ選挙にいこう
垢版 |
2019/02/22(金) 00:19:32.35
>>75
コードは見てないけど、2通り
値貼り付けをマクロの記録すればすぐに分かると思う
また、
range=range
という書き方もあるけど範囲合わせるのがちょっとめんどくさいんだよね
お好きな方で

Sub foo()

'値でコピーペースト。貼り付け先は左上セルの指定だけで良いので楽
Range("D3:D4").Copy
Range("C1").PasteSpecial Paste:=xlPasteValues

'超軽いが範囲を合わせる必要がある
Range("c1:c2").Value = Range("d3:d4").Value

End Sub
0078名無しさん@そうだ選挙にいこう
垢版 |
2019/02/22(金) 19:51:42.32
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

vbaで作成したエクセルマクロをアドインファイル(xlam)に変換後、このxlamファイルを保護したいと考えています。
ただし、パスワードの保護ではなく、VBのプロジェクトウィンドウに表示されるxlamファイルを展開しようとしても、
「プロジェクトを表示できません。」と表示されるようにしたいです。

どうやっても解除できないガチガチな保護は必要ありませんが、「プロジェクトを表示できません。」と出て
vbを表示できなくする程度には保護したいと考えています。

このような保護は、どのようにすればできるのか教えてください。
0080名無しさん@そうだ選挙にいこう
垢版 |
2019/02/23(土) 10:58:34.84
Row関数でA列にあるデータの個数+1番目の列番号を出したいです。
とりあえずB1セルに=COUNTIF(A1:A10,">0")+1と入れて、=Row(A&"B1")のような形にしたのですが、数式に問題が見つかりました。と出てしまいます。
どうすればいいでしょうか。
0081名無しさん@そうだ選挙にいこう
垢版 |
2019/02/23(土) 11:35:14.62
>>78
それが最適なパスワード保護の使い方だと思う
なんで避けるのか良く分からん

>>80
>データの個数+1番目の列番号
良く分からん。列番号は1にきまっている
データ個数+1ならこれ
=COUNTIF(A:A,"<>")+1

最大の行番号+!ならこれ
=MAX(INDEX((LEN(A:A)>0)*ROW(A:A),0))+1
0082名無しさん@そうだ選挙にいこう
垢版 |
2019/02/23(土) 21:25:48.90
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

CD収録の音楽リストをまとめています。曲名・アーティスト名など25列ほどあります。
旧バージョン時代から入力してきた経緯もあり97-2003の .xls で保存してきましたが、
曲数が増えたので .xlsx に「値のみ」で移したところ、データ量が半分になりました。
見た目は新形式に移行したようですが、データ量が半分に減って正常なのでしょうか?
31MB→14MB、計算式は無く全てテキストデータ、書式はフォントを色々変えている。
008475
垢版 |
2019/02/23(土) 21:39:17.54
>>76 ありがとうございます。
しかし使ってるコードも本やネットで拾ったもので
どこをどう直したらいいか分かりません。
あれこれ試行錯誤してますがエラーになります。
マクロに手を出したのも数ヶ月の初心者です。
何とかその辺を汲んで教えていただけませんか?
お願いします。
0085名無しさん@そうだ選挙にいこう
垢版 |
2019/02/23(土) 22:05:59.16
>>84
わかりませんじゃなくて、もうちょっと位頑張った方が良いぞ
vbaは万能だからな
あとwith嫌いだから勝手に消したぞ

Sub 統合へ()
'高速化
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set 統合シート = Worksheets("統合")
'最終行まで削除
統合シート最終行 = 統合シート.Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("統合").Rows("2:" & 統合シート最終行).Clear
'メインルーチン
For Each コピー元シート In Worksheets
If コピー元シート.Name <> "統合" Then
'コピー
コピー元シート最終行 = コピー元シート.Cells(Rows.Count, 1).End(xlUp).Row
コピー元シート.Range(コピー元シート.Cells(2, 1), コピー元シート.Cells(コピー元シート最終行, 6)).Copy
'貼付
統合シート最終行 = 統合シート.Cells(Rows.Count, 1).End(xlUp).Row
統合シート.Cells(統合シート最終行 + 1, 1).PasteSpecial Paste:=xlPasteValues
End If
Next
'高速化解除
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
'完了
MsgBox ("終わり")
End Sub
0086名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 02:34:21.40
教えてください。

VBAの命令の、Application.screenupdating = false って、
なんらかの処理が一段落ついたところで解除されると考えていいのでしょうか?

どこかで= True と書いておかないと、画面上はずっとうんともすんとも言わないってことは
ないようなんです。
Do とか While文では、ちゃんとループから出る条件を書かないと無限ループになってしまう
ことがありますが、screenupdatingは、そんなことないようなんです。
=trueは書かなくてもいいんじゃないか、と思うくらいです。

どうなんでしょうか?updating=falseが解除される条件ってのがあるんでしょうか?
0087名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 02:48:21.17
>>86
画面描画が100%停止されるわけではなく、
恐らく負荷がかかっていないようなタイミングで画面の更新は行われる

>=trueは書かなくてもいいんじゃないか、と思うくらいです。
別に外すのは勝手だけどどうなっても知らんよ
自己責任でどうぞ

>どうなんでしょうか?updating=falseが解除される条件ってのがあるんでしょうか?
知らない
ウォッチ式にでも入れておいて確認すればいいんじゃないかな

めんどいから俺はしない

https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.screenupdating
008875
垢版 |
2019/02/24(日) 06:14:22.60
>>85
目が覚めたら神様から返事がありました
感謝します
もちろんこれから頑張っていきますが
そのヤル気を大きく加速させる
スイングバイのようなレスです
ありがとうございました。
0089名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 08:56:33.49
>>83
ありがとうございます
0090名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 18:10:11.42
ハイパーリンク関数について教えてください。
Sheet1のA1セルが8ならSheet2のA8セルにジャンプ、
Sheet1のA1セルが50ならSheet2のA50セルにジャンプするようなやり方を教えてください。
0091名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 19:01:59.72
A8かA50から永遠に抜け出せなくなるけどいいのかな
0092名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 19:05:21.27
>>91
できれば抜け出せるのでお願いします。
0094名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 20:01:03.70
>>93
ありがとうございます。お陰様でできました。
0095名無しさん@そうだ選挙にいこう
垢版 |
2019/02/24(日) 21:41:13.23
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

エクセルでjsってどうやれば使えるようになるでしょうか
参照設定でしょうか
0097名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 14:09:04.90
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

.xls で作っていたファイルを .xlsx にしたところ、何の変更操作もしないでも
ファイルを閉じようとすると保存確認のメッセージが出るようになりました。
どうしたらメッセージを消せますか。マクロなどは使っていません。
0099名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 16:37:06.51
例なのでちょっと違うんですが、例えば
3年B組テスト結果
A君        B君
 17年18年19年


理 

というシートがあり、18年の全員の国語の点数を足したい。けど赤点だった人は抜くという場合
=if(A君=赤点,0,国18年)+if(B君=赤点,0,国18年)+・・・
とif計算でやるしかないのでしょうか。
ちなみにA君、B君、C君・・・は実際は横ではなく縦に並んでいます。
=(c4+g4+k4+・・・)ではなく
=(c4+c14+c24・・・)という感じになります。
010197
垢版 |
2019/02/26(火) 17:58:13.90
>>98
シートごとに.xlsxに移行して追い詰めていったら、
マイナス符号で始まる文字列が #NAME エラーになっていました。
解決しました。ありがとうございました。
0103名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 18:35:56.85
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
EXCELの共有ブック機能について質問です
共有ブックは複数ユーザが同時に編集し、変更保存時に自分の変更したセルが
編集中に他ユーザによって変更されていた場合には、どちらの変更を反映するか
選択できるということは理解できたのですが、
自分の変更したセルを参照しているセルについてはどういう振る舞いになるのでしょう?

たとえば、共有ブックFoo.xlmsの自動計算Sheet1で、A1セルとB1セルに1が入っており、
C1=A1*B1だった時、このブックを太郎と花子が同時に編集したとします
太郎はA1の値を1から2に変更しB1は触っていません。C1は自動計算で2となっています。
花子はB1の値を1から3に変更しA1は触っていません。C1は自動計算で3となっています。
先に太郎が変更を保存した後、花子がブックを保存しようとした時、C1については
変更反映選択のダイアログは出るのでしょうか?
選択できないとしたら、C1は6になって保存されるのでしょうか?

誰の変更を反映するか選択できるとしたら、
 太郎の変更(A1=2、B1=1(変更無し)、C1=2)
 花子の変更(A1=1(変更なし)、B1=3、C1=3)
だけでなく
 太郎&花子の変更(A1=2、B1=3、C1=6)
を選ぶことはできるのでしょうか?
0107名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 21:18:25.92
合計処理してるセルを選択すると、合計元のセルに色がつくとかできますか?
0109名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 22:35:50.28
vbaじゃなくて初歩的なグラフの作り方で困っているのですが、質問したらスレチでしょうか?
探しても見つからなくてそういうスレがあるなら誘導していただけると幸いです...
0110名無しさん@そうだ選挙にいこう
垢版 |
2019/02/26(火) 22:52:57.52
>>108
VBAですか?
0113名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 00:32:18.02
>>111
やりかたおしえて
0116名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 05:49:44.07
>>112
合計の%をデータラベルで表示したいということか?

100%積み上げ縦棒グラフでなくて、ただの積み上げ縦棒グラフで作る。
・百分率の系列に「合計」も作っておく。
・グラフ上の合計の系列は「塗りつぶしなし」
・追加したデータラベルは、合計の系列だけラベルの位置で「内側軸寄り」
・縦軸の最大値が自動だと倍のレンジになるので、手動調整
0117名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 06:42:53.90
【1 OSの種類    】 Windows7
【2 Excelのバージョン】 Excel2016
【3 VBAが使えるか  】 否のようなそうでもないような
【4 VBAでの回答の可否】 できれば回避したい

日ごとにシートを作っている集計シートで、全シートの同じセルを参照して合計を出しているセルがあります
シートに行を足したり列を足したりした場合、そのシートにかかわるところだけが自動的にシフトするのですが他のシートを参照している部分は変わらないのです(当然ですが)
これを自動的にずらす、方法はないでしょうか?そもそも全シートを参照するのにずらっと全シートの参照式を並べて足している状態です
vbaならシート名を変数にしてしまって全シート集計容易なのはわかってます
が、使う側が「マクロ?なにそれおいしいの?なんでボタン押す手間いるの?」なので…
0119名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 07:11:25.56
>>118
vbaにした方が早いんかな…
前回列足されてずれてて集計ミスが発生したもので
そう列は足す事はないとは思いますが…
vbaなら見出しを参照してその行を自動的に拾い出すぐらいで組めそうなんですが
関数でそれを実装するとセルにどれだけの関数を押し込めなきゃならんかと思うとちょっと
fornextって関数にないですよね?

vbaにしたらしたでさかのぼって7日間のみのデータを随時集計して色々役立てる事はできるので導入はしたいのですが、
なにぶんにも運用する上司がまるっきり知識ないので
0123名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 09:13:23.32
>>117
各シートで参照する合計セルが1つなら、
A1固定にしてしまえば、少しは楽?

合計行か合計列のどちらかなら、
1行目かA列に寄せてしまうとか。

で、
FIND、ADDRESS、MATCH、INDIRECT
を組み合わせて、縦横セル番地を特定するとか。

ただし、日別のシート名指定は
手動になるかも知れない。
0124名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 12:09:00.61
みなさんありがとうございます
>>122がいけそうですね
それか集計シートを別に用意してそこで集計させるか(そうしたら自動でずれるかな?)
0125名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 21:12:25.74
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

数値の表示形式で数値の桁数より少ない下の桁だけ表示する方法はありますか?
例えば数値が 12345678 のとき 345678 だけ表示。
または日付の表示形式で日や月日が不明の時に00と表示する方法。
例えば2019年?月?日は 190000、2019年2月?日は 190200 と。
ただし数値として並べ替えが可能なもの。
0126名無しさん@そうだ選挙にいこう
垢版 |
2019/02/27(水) 21:18:51.10
>>125
Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について
https://support.microsoft.com/ja-jp/help/883199

>例えば数値が 12345678 のとき 345678 だけ表示。
無い

>不明の時に00と表示する方法。
がどう入力されているかが分からない

>例えば2019年?月?日は 190000、2019年2月?日は 190200 と。
>ただし数値として並べ替えが可能なもの。
両立は無理
0131名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 01:04:49.03
>>125
> 例えば数値が 12345678 のとき 345678 だけ表示。
RIGHT関数で、例えば下6桁を取り出せるけど、
結果は文字列扱いになってしまうので、
=VALUE(RIGHT(当該セル,6))
では?

> 例えば2019年?月?日は 190000、2019年2月?日は 190200 と。
似たようなことをやったことがある。

元セルの日付は"?"が混じっているから、
日付書式データではないと思うので、文字列として、
LEFT、MID、FIND関数で当該値を抽出するとして、
(VALUE関数も被せる必要があるかも?)

=年*10^4+月*10^2+日
を基本に、

IF(月="?",0,月*10^2)
とか、
IF(ISNUMBER(月)=TRUE,月*10^2,0)
とか、
IFERROR(月*10^2,0)
なんてのを中にはめ込んだら?
0138名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 16:19:39.32
>>125
6桁分のセル幅に納めるのが目的なら、表示形式を文字列、配置を右寄せに。
これなら不明の00も、1999年以前の並べ替えも可能。
ただし、文字列とした後に入力した値は文字扱い、
入力済み値のセルを文字列としたのは数値扱いなので、
並べ替えを可能にするにはfixed関数で数値を文字列化が必要。
0139名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 21:30:08.89
>>134
まじでか。理解して応用効かせたいよ。

てかここにいる人、みんなすげーなー。なんでそんなにポンポンと関数やらVBAがでてくんの?仕事でしてるから?Excel漬けの毎日が数年続いてるから?
0140名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 22:18:41.91
別にExcel漬けじゃないけど、Windows95の頃から使ってるから、もう20年以上になる
だけど知らない関数も多い
統計とか使ったことないし
0141名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 22:56:47.90
15年ぐらい使ってるな。これ覚えれば絶対に楽できると確信した
15年前の俺はよくやった
そして更にvlookupとvbaを覚えた時も衝撃走った
0142名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 23:28:49.99
>>141

俺の中ではlookup系の関数は使えない関数ってことで捨てたんだけど
そんなにいいものなのか?

個人的にはmatch関数ですべてまかなえる気がしてる
0143名無しさん@そうだ選挙にいこう
垢版 |
2019/02/28(木) 23:35:15.65
vlookupで衝撃→indexmatchで衝撃→sumproductで衝撃
sumproduct古い関数なのになんでこんなに使えるの?
それとももっと有能がある?
基本的な使い方は
sumproduct((○=縦)*(△=横),配列2)
なんだけど
0145名無しさん@そうだ選挙にいこう
垢版 |
2019/03/01(金) 01:16:03.25
>>142
indexmatchはvlookupの上位互換だけど、
なんちゅーか便利な技だね。必須ではあるけど・・・
vlookupは新しい世界が開けたといっても過言ではない
0146名無しさん@そうだ選挙にいこう
垢版 |
2019/03/01(金) 07:22:55.92
indexmatch派のメンツも、入り口はvlookupだっただろうし、最初に衝撃うけたってだけかとw

sumproductは便利だからすぐ使いたくなるけど
重くなりすぎに注意ってとこがな・・・
使い始めた頃は、色んなサイトに例で出てくるrow関数に惑わされた
0147名無しさん@そうだ選挙にいこう
垢版 |
2019/03/01(金) 07:39:36.70
作業列を有効に使う事も大事だと思う
恰好悪いとか思ってる人もいるが長い数式ほど迷惑なものは無い
趣味で自分しか使わないなら構わないが
0148名無しさん@そうだ選挙にいこう
垢版 |
2019/03/01(金) 17:28:30.02
画像の説明通りですが
2つの数値の差を
+−表示で別のセルへ表示したいのです。

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

画像です。
https://i.imgur.com/3b1rWck.jpg

宜しくお願いします。
0150名無しさん@そうだ選挙にいこう
垢版 |
2019/03/01(金) 18:12:34.51
やっぱ書式でしょう
0151名無しさん@そうだ選挙にいこう
垢版 |
2019/03/01(金) 18:19:02.04
あとで計算に使わないならお手軽にTEXT関数でもいけるんじゃないの
=TEXT(B1-A1,"+0.00;-0.00;±0")
パーセント表示のとこの実際の値がどうなってるかわかんないけど
0154名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 10:48:47.55
文字列IDの最小値を取りたいのだけど、できなくて。お知恵を貸してください。
やりたいことは、ID列の先頭文字でカテゴリしてその中の最小値を取る!です。
以下の0始まりだと、「001001」を取りたい

ID列
001001 ※取得
001002
100001
100002
200001
200002

最大は、TEXT(MAX(INDEX((LEFT($A$2:$A$7,1)=TEXT(0,"0"))*$A$2:$A$7,0)),"000000")みたいなので取れたんだけど。最小は上のやり方だと0始まり以外の配列要素が0になってしまって、0が取れてしまう。

マクロでやれば簡単なんだけど、計算式でやりたいっす。
0156名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 12:50:37.04
なんとなくけど、"-"を付与してminで取れば行けそうな気がするんだけど0も-0になってるみたいで無理だった
=MIN(INDEX((LEFT("-"&$A$2:$A$700,2)=TEXT(0,"-0"))*$A$2:$A$700,0))
0159名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 13:47:58.62
フォームボタンクリックで、あるシートを表示するVBAを書きました。
ただ非表示シートを表示させるだけじゃなくて、
そのときの条件で、シート内の文言やラジオボタンたちの表示/非表示が違うので、
if **** then *****.visible = true みたいなことをずっと書いてあります。

しかし、命令通りに非表示/表示がされないことがあります。非表示のはずのボタンが
出ていたり、その逆があったり。
これは、処理スピードのために、命令全体を、
application.EnableEvents = false  後はtrue
application.ScreenUpdating = false  後はtrue
application.Calculation = xlCalculationManual  後はxlCalculationAutomatic

で挟んだせいだと思います。
ですので、いちばん最後に、「いったん表示をリフレッシュ」みたいな命令を出せばいいんじゃないかと
思うのですが、そういう命令ってありますでしょうか?
0160名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 13:49:54.95
>>154
配列数式。
=MIN(IF(IF((LEFT(A2:A5,1)="0"),A2:A5,FALSE)*1=0,FALSE,A2:A5*1))
https://imgur.com/a/xv5TjDH

falseと文字列の評価を同時にするとどうしてもfalseが0になるので、ネストにするしかなかった
他に方法はあるかもシレンが、もういいや

色々こね回して一時間掛かったけど楽しかったぞ

>>158
マクロ使えるぐらいだし、作業列使わない方法を効いてるんだろう
これは実務じゃなくて半分遊びだな
0161名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 13:59:06.14
>>159
vbaにリフレッシュ無いっぽい

>そのときの条件
これが再計算や描画が影響するものなら高速化を外したほうが良いと思う
言うてもそんなに変わらんでしょ
0164名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 14:45:37.50
>>163
使用頻度は1日100回くらい。
10秒以上かかってるのが1秒になる。

せっかちな社員が使うから、
速くしておかないと「使えない奴」と思われるからまずい。
0165名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 15:00:11.43
シートを日数分追加したいのですが
31日分だったら31枚プラス集計の1枚といったかんじで
超絶面倒なのですが何かいい方法はありますでしょうか?
シートに日付も入れられるとすげー楽です。
0166名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 15:09:28.79
エクセルを使ったことがない初心者です。
ウィンドウズ10にエクセルソフトを入れたいのですが何を購入したらいいですか?
それから勉強もしたいのでお勧めの本とかありますか?
0167名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 15:18:03.63
>>164
うーん微妙だね
10秒ぐらいなら待ってもらえばいいと思うけど
これ以上はコード見ないと分からない。恐らく構成が変なのだろう
アップしてくれれば見るよ

>>165
Sub foo()
日数 = Day(DateSerial(Year(Date), Month(Date) + 1, 0))
For i = 1 To 日数
Set 新シート = Worksheets.Add(, Worksheets(Worksheets.Count))
新シート.Name = i & "日"
Next
End Sub

>>166
機能は制限されるけど、オフィスオンラインなら無料
https://products.office.com/ja-jp/office-online/documents-spreadsheets-presentations-office-online
googleSpreadsheetも無料
https://www.google.com/intl/ja_jp/sheets/about/
本はMOS試験の本でも買っておくと良い
0168165
垢版 |
2019/03/02(土) 15:25:05.24
>>167
ありがとう!
0169名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 15:34:27.66
ありがとうございます。
0170165
垢版 |
2019/03/02(土) 15:38:35.48
ぶぉ、スプレッドシートはVBAいけないんだw
まぁ当たり前か。
jsでかくのかぁ・・・
0172名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 17:19:20.89
なんでマイクロソフトはマクロ含むブックは
拡張子わけるようにしたわけ?いらんくね?
0175名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 19:48:28.72
>>160 
ありがとう!できたよ。

その他みんなもありがとう。
いろんな方法があったのだけど、MAXは簡単に実現できたのに
MINができなくて、計算式一発でやれる方法を模索をしてました。
ワーク列使ったり、マクロ使ったりすれば、実現できてはいたんだけど。

ありがとう!!
0176名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 22:33:19.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

下記の画像のような表があるとして、どこかのセルに5と入力するとC列の9と10の平均の値を表示させるということは可能でしょうか?


https://i.imgur.com/TUgDSmc.jpg
0178名無しさん@そうだ選挙にいこう
垢版 |
2019/03/02(土) 23:32:18.20
>>177
数字間違えてました。
9と10ではなく7と8です。
B列で5と入力されている行のC列の値を平均してセルに出力したい、ということです。
分かりづらくて申し訳ないです…
0184名無しさん@そうだ選挙にいこう
垢版 |
2019/03/03(日) 01:20:26.16
エクセル作成の依頼をする場合どこがいいの?
0186名無しさん@そうだ選挙にいこう
垢版 |
2019/03/03(日) 01:33:58.73
ここでもいいの?
0188名無しさん@そうだ選挙にいこう
垢版 |
2019/03/03(日) 03:21:50.18
流石にお金払うレベルのものは、ここではやってくれないと思うぞ
軽く依頼するつもりでも、フタを開けてみると
依頼できるレベルに仕様がはっきりまとまっていない・・・なんて事もよくあるから
>>187 の言うように、詳細詰めるのはここで相談するのはアリだと思うけど
0192sage
垢版 |
2019/03/03(日) 11:36:23.08
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

入力フォーム上に設けられたテキストボックスの行数制限を行おうとしています。
下記のコードで対応しましたが、なぜかmsgboxの"行数は〜"が何度も表示され、do loopがうまくいってない気がします。
どこが間違っているのでしょうか?
If TextBox1.LineCount > 4 Then
MsgBox "行数は4行までに制限されています"
Do Until TextBox1.LineCount = 4
TextBox1.Value = Left(TextBox1.Value, Len(TextBox1.Value) - 2)
Loop
End If
0193名無しさん@そうだ選挙にいこう
垢版 |
2019/03/03(日) 11:54:45.28
>>192
コード、かなり変だよ
使うのはdoloopじゃない

Private Sub TextBox1_Change()
If TextBox1.LineCount > 4 Then
MsgBox "行数は4行までに制限されています"
行テキスト = Split(TextBox1.Text, vbCrLf)
TextBox1.Text = 行テキスト(0) & vbCrLf & 行テキスト(1) & vbCrLf & 行テキスト(2) & vbCrLf & 行テキスト(3)
End If
End Sub
0196名無しさん@そうだ選挙にいこう
垢版 |
2019/03/03(日) 15:55:19.09
>>173
拡張子でわけなくてもいいじゃん
0197sage
垢版 |
2019/03/03(日) 16:30:03.85
>>193
splitのようなものがあるのですね…初見でした
アドバイスありがとうございました
0198名無しさん@そうだ選挙にいこう
垢版 |
2019/03/04(月) 18:54:02.58
求人サイトでよく書かれている「エクセルが使えるかた」の基準って何でしょうか?

使える関数は、
SUM、AVERAGE、IF、INDEX、MATCH、RANK、
LARGE、SMALL、LEFT、MID、RIGHT、OFFSET、
IFERROR、TEXT、SUBSTITUTE、MAX、MIN、
COUNT、COUNTIF、SUMIF、SUMPRODUCT
くらいです。

グラフは条件付き書式のデータバーやスパークラインくらいならできますが、
円グラフとかは全くできません。

マクロは実操作でアクションを覚えさせるのはできますがVBAのプログラミングは全くできません。

ビポットテーブルも全く分かりません。

「エクセルが使えるかた」に入りますか?
0199名無しさん@そうだ選挙にいこう
垢版 |
2019/03/04(月) 19:10:28.88
>>198
微妙だけどグラフが勿体無いな
グラフだけ作れたらそう言っていいと思う。なんか知らんけど日本人はグラフ好きなんで

関数は十分
個人的にはindirectがほしいけど、offset使えるならまぁいいかな
後は書いてないけどandとorか、まぁ使えると思うけど

>グラフは条件付き書式のデータバーやスパークラインくらいならできますが、
>円グラフとかは全くできません。
とりあえず最低限グラフ作れるだけの技能は必要
といっても、表を選択して、挿入のグラフを選択するだけなので数秒でできる
ってか今練習して使えるようになれば良い。1分もあれば覚えるだろう
それと欲しいのは、グラフエリアの軸の書式設定は変えれるようになっておいたほうが良い。要は左端の数字の最小・最大・メモリの幅など
まぁそんだけできたら良い
後はそこら中を右クリックしまくって、なんとなく何をどう変えられるかを掴んでおくと大体どうにかなると思う

例として、10秒で作ったグラフ
https://i.imgur.com/410w6wq.png

>マクロは実操作でアクションを覚えさせるのはできますがVBAのプログラミングは全くできません。
勿体無いな。恐らくマクロは触らされないとは思うが、もうちょっと覚えた方が後々良い
マクロは業務を全自動にできるので、君が退職した後も仕事を減らし続けることができる
俺は五人分ぐらい働いたぞ
時給は上がらんかったがな、ははは

>ビポットテーブルも全く分かりません。
これもグラフ同様覚えておいたほうが良い
0200名無しさん@そうだ選挙にいこう
垢版 |
2019/03/04(月) 19:15:42.64
アイコンダブルクリックしてExcel起動、数値を入力したあとΣボタン押して合計を求め、ブックに名前を付けて保存
こんだけできれば「Excelできます」と言っていい
そんな職場も実在する
できないやつってのは、こんな基礎もとことんできないから
0201名無しさん@そうだ選挙にいこう
垢版 |
2019/03/04(月) 23:54:22.30
>>198

データ処理をメインとする俺からすると少し足りないかな
if使うならis系の関数(isnumber, iserror, iseven他)便利なもの多いから覚えたほうがいい
他にもmatch, indirect + address, row, columnが理解できれば本当にできないことがないってくらい何でもできる
0204名無しさん@そうだ選挙にいこう
垢版 |
2019/03/05(火) 05:53:01.15
>>198
エクセル使える人に入る入らないという定義自体がもうどうでもいい感じだけど、入るとも言えるし入らないとも言える

でも「入らない」と言いたくなる、何故なら
・ピボットできないの厳しい
・円、棒、折れ線グラフ作れないの?
↑どれも範囲選択してポチっでボタン押すだけ、あとは微調整やら

普通の本が読める人ならやる気さえあれば15分ずつで解決する
それをやるかやらないかだけの話で、あとは正直に実務ではやったことないけど自己学習でやったことあると言えるかどうかなんでは?

あとIFERRORでVlookupのネスト(必要な数いくらでも)くらいはできて欲しいし、TRIM,LENあたりのデータ整える時必要ないのもできて欲しい

ピボットは、数字見る時話しながらショートカットでピボット作って、なんてことあるからそこでまごついているのってと思ってしまう
0207名無しさん@そうだ選挙にいこう
垢版 |
2019/03/05(火) 13:35:31.60
>>220
使わないとならないボタンでもないので、
また使わなくても手間がすごく増えるわけでもない
でも、使い始めたら結構つかうようになったよ。
0208名無しさん@そうだ選挙にいこう
垢版 |
2019/03/05(火) 15:49:15.06
おせっかい機能がひどすぎて、小文字の「i」が入力できない。
0211名無しさん@そうだ選挙にいこう
垢版 |
2019/03/05(火) 22:23:43.95
エクセルなんて利用者がめちゃくちゃいるから
わからないことなんてネット検索ですぐわかるようになる
0213名無しさん@そうだ選挙にいこう
垢版 |
2019/03/06(水) 14:13:57.35
教えてください。

むちゃくちゃな編集を禁止するためにシートを保護しても、一部のセルだけは
「ロック」というところのチェックをはずしておけば、編集可能になりますが、
条件付き書式で、「編集可能=ロックされていない」セルだけは自動で背景色が変わると
いう設定にすることはできないのでしょうか?
0214名無しさん@そうだ選挙にいこう
垢版 |
2019/03/06(水) 16:45:26.63
できない
0218名無しさん@そうだ選挙にいこう
垢版 |
2019/03/06(水) 22:15:56.68
>>216
これnot関数って付ける必要ある?
0220名無しさん@そうだ選挙にいこう
垢版 |
2019/03/06(水) 23:05:02.68
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

以前から悩んでいることではあるのですが、ブック間の行の移動(カット&ペースト)がうまく処理できません。
今開いているブックの3行目をデスクトップのブックを開いて4行目位にコピーしたいとき
シンプルに書きたいのですが・・・・

Workbooks.Open Filename:="C:\Users\testman\Desktop\Book1.xlsm"
Rows(3).Cut
Workbooks("book1.xlsm").Worksheets("sheet1").Rows(4).Paste
Application.CutCopyMode = False

では、ダメなんでしょうか?
結局エラーがたくさん出て、最終的には各ブックやシートをアクティブにするといったことをやって10行近くのコードになるのが・・・

シンプルな方法はないのでしょうか?
0222名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 04:05:59.29
>>220
Openすると、自動的に後で開いた方のブックがアクティブになるので、CutはOpenの前にしなきゃいけない
とりあえず行数を減らしたいだけなら、これでも一応動く
もっと大量のデータをコピペしたいなら、もう少し工夫が必要
Rows(3).Cut
Workbooks.Open Filename:="C:\Users\testman\Desktop\Book1.xlsm"
ActiveSheet.Rows(4).PasteSpecial
0223名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 05:27:47.95
かねがね疑問だったんだけど、
>>216みたいなときに、A1って書くの、なんかへんじゃね?
別途「このルールの適応範囲」を指定するわけだし、別にA1関係なくね?

これのせいで混乱するんだけど。

これ、「仮にA1ってことで、条件と書式を指定しておきますね」としておいて、
他の箇所で「この条件付き書式を適応するのは○○ですよ。A1関係ないですからね」って言ってる、
そういう理解でいいの?
0226名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 09:23:58.42
ラウンドダウン使って報告値計算シート作ったら、上司にブラックボックスを使うなとボツにされた


ブラック・・・ボックス・・・?
0229名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 12:18:57.08
コメントで何をやっているか書いておけば大概解決する
何をやっているかわかれば、普通の人は細かいことを気にしないよ
0230名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 12:59:06.48
コメント付けると無能上司はバカにされたと思って逆ギレしかねないから
将来メンテの時に自分が忘れてしまうので付けたって事にしとけ
0231名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 14:29:58.98
thisworkbook.Sheets("日報").Range("C4:C50").SpecialCells(xlCellTypeConstants).ClearContents


これ、C4とかに値が入っている状態だと問題ないんだけど、
いちど値をクリアしてから実行すると、「該当するセルが見つかりません」って出てくる。

エクセルが、「クリアしようと思ったらもうクリアされてるじゃん。エラー出しとこ」と言ってるみたい。
そういうもんなの?
0233名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 16:50:13.45
>>232
やっぱりそうでしたか。
ありがとうございました。

そうやってすぐに的確な資料を見つけて調べられるところ、頭がよさそうでうらやましい。
0234名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 17:43:00.32
>>233
ってか、「MSDN 調べたい内容」で検索してmsdnで調べればいいだけだよ
しっかり読めば最も正しい答えが書いてある(たまに間違えている)
ブログとかしょーもないサイトは見なくて良い
0236はてな
垢版 |
2019/03/07(木) 21:10:30.12
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 できれば使わないでほしい。

特定の番号を入れた時に数字が増えるようにしたい。

  A列  B列
1行 AS 18001
2行 ZX 18001
3行 AS 18002
4行 AD 18001
5行 ZX 18001
6行 AS 18003

このようにASが増えたらその分+1する、ほかのA列に入れた英字も入れた分だけ+1する
ように設定したい。前に+1した数字は変えず、増えた分変更するのはA列に文字が入力された時だけ。
そんな関数ってあるでしょうか。一枚のシートで運用したいと思っている。
0238はてな
垢版 |
2019/03/07(木) 22:53:50.56
>>237
ごめんなさい、打ち間違えてました。
正しくはこうです。初めてA列に入力した文字のB列が18001になり、
再度A列に同じ文字が入力されたらB列に18002と+1されてゆくようにしたいです。
  A列  B列
1行 AS 18001
2行 ZX 18001
3行 AS 18002
4行 AD  18001
5行 ZX 18002
6行 AS 18003
0240名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 23:11:08.66
あー単純にその手があったか
sumifしてプラス1を考えてたよ
0241名無しさん@そうだ選挙にいこう
垢版 |
2019/03/07(木) 23:11:29.89
おっと maxifだった
0242はてな
垢版 |
2019/03/07(木) 23:13:59.88
>>239
ありがとう!
こんなに簡単なんやね。
行を飛ばしてもうまくいってる。
自分一人じゃ思いつかなったかも。
本当に助かるよ。
0243名無しさん@そうだ選挙にいこう
垢版 |
2019/03/08(金) 22:07:19.47
パソコンなら簡単にできるけど
タブレットとかでスプレッドなどをつかったとき
マウスでないから表作成とか簡単にできてたことがやり方がわからなくなる

範囲をのばして12345にしたりとか

どうやってますか?
0244名無しさん@そうだ選挙にいこう
垢版 |
2019/03/08(金) 23:08:42.71
>>243
スマホやタブレットは当たり判定が広く作ってあるから慣れるしかない

あと、たいがいのAndroid機器はマウスもキーボードも使えるよ
USBかBluetooth接続で普通に操作できる
0245名無しさん@そうだ選挙にいこう
垢版 |
2019/03/09(土) 10:02:46.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 できれば使わないでほしい。

見積書を表で作って、署名+捺印(陰影を図形で)してあります。
このままだと捺印部分がコピーできたり移動できたりするのですが
表と捺印を固定するため、グループ化できないでしょうか?
0246名無しさん@そうだ選挙にいこう
垢版 |
2019/03/09(土) 10:42:32.40
>>245
図形を動かないようにするには、シートの保護 → 許可する項目の中の「オブジェクトの編集」のチェックを外すのが定番
見積書の日付や項目を編集するには、シートを保護したままセルのロックを解除しておく
0249名無しさん@そうだ選挙にいこう
垢版 |
2019/03/09(土) 14:05:52.89
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

2007以降の拡張子(XLSXなど)を開きたくて
開けずに困っています。
まだ「互換パック」がマイクロソフトのサイト
からダウンロードできるからそれを実行して
みたところ、「何も影響しない」とか表示が
出て、まったく使えない様子です。
ちなみに、2018年4月以降、サポートが
されなくなった、との情報もあります。

これってもう機能しないものを配信している?
できたって人いますか???
0250名無しさん@そうだ選挙にいこう
垢版 |
2019/03/09(土) 14:26:10.98
詳しくは、EXCEL2003 SP3です。
0258名無しさん@そうだ選挙にいこう
垢版 |
2019/03/10(日) 05:17:36.50
>>249 なんで未だにそんな化石使ってんの
職場でならとっとと新しいの入れてもらえだし私用で金がないとかならOpenOfficeなり使えばいいじゃん
0259名無しさん@そうだ選挙にいこう
垢版 |
2019/03/10(日) 06:28:12.85
2003は軽いからなあ
回線やPCの性能が普通レベルでもgooスプは動作が重くてあんまり常用したいとは思わんな
ネット越し共有が簡単にできるのはいいけど
0260名無しさん@そうだ選挙にいこう
垢版 |
2019/03/10(日) 09:32:21.55
ここのスレでこういう反応なのは、時代かな。
他に旧いの使っているよっていうスレがあるならそっちにいってみよう。
0266名無しさん@そうだ選挙にいこう
垢版 |
2019/03/10(日) 18:58:45.47
>>261
>2003はさすがに不便すぎる
このスレの総意なのね。と受け取っておくよ、一応は。
0268名無しさん@そうだ選挙にいこう
垢版 |
2019/03/10(日) 21:59:05.51
いまだに全社的に2000使ってるところは、たぶんライセンス違反やろ。
確か入れ放題だったはず。

まともな頭してれば買い換えるんやけどな
0271名無しさん@そうだ選挙にいこう
垢版 |
2019/03/11(月) 12:22:25.20
役所なんかは、xlsファイルじゃないと受け渡し拒否してくるから
2003でどこまでできるかは把握している人は多いよな
xls形式だと2010以降の機能使うとエラーになりやすいから
0273名無しさん@そうだ選挙にいこう
垢版 |
2019/03/11(月) 18:10:38.79
C1のセルに、次のような表の値を計算して値を出力するにはどの様な関数を使用すればよいでしょうか。どうぞよろしくお願い致します。

A列に数量
B列に価格

C1 = A1 * B1 + A2 * B2 + A3 * B3...
0277273
垢版 |
2019/03/12(火) 22:20:14.60
>>274
ありがとうございます!
そのものずばりな関数があったのですね。助かりました
0278名無しさん@そうだ選挙にいこう
垢版 |
2019/03/13(水) 00:00:37.17
同じ計算をするのにsumproductと自分で配列数式組むのとどっちが早いんだろう?
sumproductは配列数式に皮を被せてるだけの関数に見えるから、内部的には同じ処理をやってる気がするけど
0281名無しさん@そうだ選挙にいこう
垢版 |
2019/03/13(水) 20:37:11.41
246810121416

みたいな数字をマスに並べるのは
=A1*1  みたいにいちいち入力していかないと無理ですか
0282名無しさん@そうだ選挙にいこう
垢版 |
2019/03/13(水) 20:37:59.49
VBAで、いつどのタイミングで作っても絶対に重複しない文字列を作りたくて、
思いついたのが、「その瞬間の月日時間秒を文字にすればいいんじゃね?」です。

つまり、本日ただいま文字列を作るとしたら、20190313203415(年月日時分秒)となるようにすればいいのだ、と。
でも、それを、どうやって 変数に入れればいいのか、わかりません。
ひとつひとつ、
year(date) & right( "0" & month(date),2) & …… と指定するしかないのでしょうか?

もっとスマートに、「年と月と日と時と分と秒を桁をそろえて数値で構成される文字列に変えて」みたない
一発ですむような命令ってあるんでしょうか?
0285名無しさん@そうだ選挙にいこう
垢版 |
2019/03/13(水) 22:52:00.63
>>281 最初のセルに2を入れて増やしたい列、行、セルを選択して
ツールバーからホーム→フィル→連続データの作成を開いたら増分値に2入れる
2010しか手元になかったから新しいので違ったらごめん
0288名無しさん@そうだ選挙にいこう
垢版 |
2019/03/14(木) 18:04:02.89
2016から365に変えて以降、ふいに表示を小さくしすぎて
10%表示くらいになるとだいたいフリーズしてしまうんだが
スペック悪くないのにハードウェアアクセラレータのONOFFでも変わらないし
誰かおしえて
0290名無しさん@そうだ選挙にいこう
垢版 |
2019/03/14(木) 20:35:25.00
>>281
数字の間にスペースかカンマいれて
区切り位置のツール使ったらどうでしょう。
0291名無しさん@そうだ選挙にいこう
垢版 |
2019/03/14(木) 21:48:00.08
質問させてください
例えば、
19という数字を4と3.5で割る(って言い方は正しくないかもしれないですが)と
4がいくつになって3.5がいくつになるかって言うのは
関数で出来るんでしょうか?



(19だったら4が4つ、3.5が1つ、余りが0.5)
(19だったら4が3つ、3.5が2つ、余りが1)

余りが3.5未満になるいくつかのパターンが出るように出来たらなお助かります
0292名無しさん@そうだ選挙にいこう
垢版 |
2019/03/14(木) 21:50:17.19
計算間違えました

(19だったら4が4つ、3.5が1つ、余りが0.5)
(19だったら4が3つ、3.5が2つ、余りが1) ←こっち余り0でした
0295名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 05:51:06.11
>>293
うん、どっちも本気で間違えてました
このレベルで計算が出来ませんので自動で計算が出来る式が知りたいです
0296名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 06:04:52.11
どちらでも割れる28とかの場合は、
4だけで7で割れるし、3.5だけでも8で割れちゃうけど
4と3.5どちらを優先するとかあるの?
0298名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 13:30:25.25
>>291
4と3.5の数を同じぐらいにしたいのなら
A1=元の数字
B1=4
C1=3.5
と入れて、
B2=INT(A$1/(B$1+C$1)) → これが4の数
C2=INT((A$1-B$1*B2)/C$1) → これが3.5の数
D2=A$1-B$1*B2-C$1*C2 → これが余り
0299名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 13:34:30.69
>>291
複数パターン計算して自分で一番いいやつを選びたいなら
A1=元の数字
B1=4
C1=3.5
ここまでは同じ
続いて、
B2=ROW()-2
C2=INT((A$1-B$1*B2)/C$1)
D2=A$1-B$1*B2-C$1*C2
と入れたあと、B2C2D2を下のセルにコピペしていくと別の答えが何通りか計算できる
0300288
垢版 |
2019/03/15(金) 14:32:43.25
>>289
マルチスレッド無効にしたらめちゃスムーズになりました
取急ぎ報告だけ
0301名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 18:49:57.38
すいません、エクセル全く使い方わからないんですが、こういう使い方って出来ますか?(そういう関数というか入力式ありますか?)

{そのセルの行番号の数字-(そのセルの数字×別の数字)}+また別の数字 のセルの数字を表示する

例えば、A100に10と入力したとして、
Aの{100-10×3}+1 (つまりA71)の数字をB100に表示する、ということです
(Aの1〜100は全部何かしらの数字が入力してある)
(当然、↑のことができればそれに基づいてBも埋まっていく)
ということです
0303名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 20:24:21.10
>>302
ありがとうございます!
うーしかし数式の意味自体が全くわからん
ROW() というのは、()はそのまま空白のカッコでいいんですか?

あと、B100だけの個別式ではなくて、B列(B行?)全部を同じように、隣のAのセルの数字に対応して計算したAのセルの数字を表示させるにはどうすればいいんでしょうか?すいません……

例えば、
A100に10と入力するとB100にはA71の数字がそのまま表示される、(100-10×3+1)
A101に20と入力するとB101にはA42の数字がそのまま表示される、(101-20×3+1)
もちろん100以下も同じで、
A99に30と入力するとB99にはA10の数字がそのまま表示される、(99-30×3+1)
ということです

すいません、よろしくお願いしますm(__)m
0309名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 21:35:28.21
>>307
ありがとうございます。なんかいつも、どっちが縦でどっちが横なのかイマイチわからないです(数学でも行列ってありますけど、行と列のどっちが縦でどっちが横なのか……)

>>306
ありがとうございます。
個別ではなく、なんていうのかな、数式を一般化するというのかな、一括で(一回どこかに数式を入れるだけで)全ての行について上で言ってきたような表示が出来るようにはできないものなんでしょうか?
例えばA100に数字入れてもA250に数字入れてもA1500に数字入れても、ただそれだけで↑で言ったような計算式に基づいてBのセルにパッと数字が出てくる、ということです。
(A1500に20と入れたら、それだけで「A1441の数字」がパッとB1500に表示される、ということ)
表示させたい全ての行についてそのつどB100の数式をコピペする必要がありますか?

=INDIRECT("A"&(ROW()-A100*3)+1)

↑これだと、(数式の意味は詳しくわかりませんが、)少なくともA100の部分が具体的ですが、これをどうにかして一般化して、一回の数式の書き込みだけで設定完了(あとは好きなAのセルに数字入れるだけ)みたいには出来ないんですかね?
要するに、2つ3つではなく全ての行についてやりたいので、そのつど数式をコピペするとなると大変だなぁ……と思っているということです(・・;)
0310名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 21:59:56.33
>>309
数式が入ったB100のセルをコピーして、B1からB1500でもB10000でも好きなところまで選択して貼り付け、ってやるだけでいいんだってば
それだけの簡単な手順で、式の中のA100と書かれた部分がA1からA1500に自動的に書き換わってくれるの
Excelの基本的な使い方だよ
0311名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 22:09:06.88
>>310
なるほど、一括選択→ペーストみたいな感じですか
それなら手間はかからないか
ありがとうございます!
ちなみに、B1500までB100の式を貼り付けした後、しばらくしてからB1501〜2000までも必要になったら、それはB100まで戻って式をコピーしなくても、B1500の式をコピーして1501〜2000まで選択して貼り付ければ大丈夫ってことですか?
0313名無しさん@そうだ選挙にいこう
垢版 |
2019/03/15(金) 22:19:47.52
>>312
そうですか、わかりました、ありがとうございました!
とりあえずそれだけ必要だったので助かりました!
今度、ゼロからわかる〜みたいな感じのエクセルの本を借りて少しずつ読んでみようと思います
0317名無しさん@そうだ選挙にいこう
垢版 |
2019/03/16(土) 13:48:49.41
ある列に数字を入力したら任意の複数列にその数が合計になる数字がランダムに入るのって関数だけでできますよね?

たとえば45と入力すると6列の場合9 9 8 7 9 3と自動で入るような
(最大値と最小値も指定したい)
0318名無しさん@そうだ選挙にいこう
垢版 |
2019/03/16(土) 13:53:23.03
>>317
できるけどルールをかなりしっかり決めないとうまくいかない気がする
「乱数 web」
で検索すればそれっぽいサイト色々あるから、ソッチのほうが早いとは思う
0320名無しさん@そうだ選挙にいこう
垢版 |
2019/03/17(日) 14:38:22.14
一つの列に条件付き書式でセルの塗りつぶしが起るように設定しています。
例えばA列には数式(計算されるまで空白表示)が入っており、条件1「=A1<=10」で赤、条件2「=A1>=11」は緑となるようにしています。
ただ数式が入ってるところが勝手に塗りつぶされます。「""」でも条件付き書式で反応するのです。

【1 OSの種類         .】 Windows10 64bit
【2 Excelのバージョン   】 Excel365(最新にアップデート済み)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
0322名無しさん@そうだ選挙にいこう
垢版 |
2019/03/17(日) 16:50:14.75
>>321
条件を満たす場合は停止ってどういう挙動が起こるんですか?
要するに「""」で塗りつぶしが起こらないようにするためには、条件付き書式で「""」も設定する必要があるってことですね?
0323名無しさん@そうだ選挙にいこう
垢版 |
2019/03/17(日) 17:28:45.08
>>322
>>320
への、そもそも論を言ってなかったな
空白のセルに対して不等号を使うと、0とみなされて
>条件1「=A1<=10」で赤
これが適用されてしまう

>条件を満たす場合は停止ってどういう挙動が起こるんですか?
条件付き書式は上から全て処理される
一番上の書式を設定すると、そこで終わりの意味

>要するに「""」で塗りつぶしが起こらないようにするためには、条件付き書式で「""」も設定する必要があるってことですね?
そう
0324名無しさん@そうだ選挙にいこう
垢版 |
2019/03/17(日) 17:32:01.68
>>323
ああ、なるほど!理解しました。
セル内が「=""」でも0と見なされて条件1「=A1<=10」が適用されてたんですね。
だからセル色が変わってたのかー
無事解決しました。わかりやすい説明ありがとうございました。助かりました
0325名無しさん@そうだ選挙にいこう
垢版 |
2019/03/18(月) 01:12:42.38
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A列には「山田」「鈴木」等の重複がある名前が並んでいて、
1行目には見出し、2行目以降には名前が羅列してあり、
B列には関数を =COUNTIFS($A$2:A2,A2) と入力して
A列にデータがある行全てにコピペする事で
重複しているデータに番号を割り振れるようにしています。
(重複しているデータの行の1つめは1、2つめは2、と表示させる)

件数が多くなってきて処理が重くなってきたので、
countifsを使わずにこの計算を行いたいのですが可能でしょうか?
0326sage
垢版 |
2019/03/18(月) 01:40:13.50
前スレでの質問を再度書きます

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

A列と、B列があって、B列に記入がなければA列の値を採用
これを各行の総計するのは、どうするのがシンプルでしょうか?
各行ごとにC列で作業列を設けるのがパッと思いつきましたが、他にいい方法があればと思いまして…
0327名無しさん@そうだ選挙にいこう
垢版 |
2019/03/18(月) 02:12:51.88
>>325
ピボットテーブル
A列を選択しておすすめピボットテーブルを選べば一発で出来た
※おすすめ〜が2013にあるかは分からない

>>326
一行目に見出しがあるとして、
=SUMPRODUCT((B2:B4<>"")*(A2:A4))
個人的には作業列の方がシンプルに見えるけどね
0328名無しさん@そうだ選挙にいこう
垢版 |
2019/03/18(月) 08:48:18.40
>>327
2013にもおすすめピボットテーブルは確かにあるのですが、
A列を指定しておすすめピボットテーブルを選択しても期待する結果が得られませんでした。
ピボットテーブル自体あまり理解できていないのですが、
B列のcountifsを削除しても重複が何個目かを算出できるのでしょうか?
0331名無しさん@そうだ選挙にいこう
垢版 |
2019/03/18(月) 15:05:47.20
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

SUMIFSをSUM関数とIF関数で代用できますか?
sum(if(and(条件1,条件2),1,0))
↑これだと正しく処理されませんでした。
0334名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 10:19:45.63
一枚のシートにデータを入力フォームを使用して入力する際に、例えば社員コード001の社員が入力するときには、該当社員が前回入力した値をフォームに表示させ、
社員コード002の社員が入力するときにはコード002の社員が前回入力した値を表示させるようにしたいのですが、VBA使えば可能ですか?
0335名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 11:09:46.79
>>334
もちろんvbaでも可能だけどちょっと大げさ

vlookup関数で可能
更に利便性を高めるなら、index関数とmatch関数を組み合わせたものにすると超便利になる
0337名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 17:07:08.16
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい・いいえ ?
【4 VBAでの回答の可否】 可・否 ?
右クリック→コメントの挿入
が表示されなくなって使えません
ショートカットからコメントの挿入を表示させるとグレー表示で選択できません。
0340名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 18:58:20.71
>>339
なるほど。
少し様子を見てみます
0341名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 19:02:14.25
業務上大量の郵便物を送ることがあるのですが、送り先を記録に残しておくために効率的な方法がないかアイディアを探しています

例えばexcelの特定の列に送り先の名前を記載するとして、その送り先は50通りだとします

そして誰に送るか・計何通送るかは日によって異なり、例えばn1〜n26までの26箇所に1通ずつ計26の送り先を記載する場合もあれば、n1に1通、n2に2通…n50に50通の計1275通送ることもあります
つまり50通りのうちどの送り先に何通送ることになるかは日によって大きく異なります
また、発送作業は随時しないといけないため、例えばその日のn1は何通…というのが決まってから一気に入力ということができません
それぞれの送り先nを随時手入力したりプルダウンメニューで選択したりするのは煩雑です
何か効率のいい方法はないでしょうか?

なお、一応excel板で質問させていただいていますが、同じことができればword・access等でも可能です、わかりにくい上板の筋から逸れた話で申し訳ないですがお知恵をお貸しください
0343名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 21:16:46.08
>>341
googleフォーム+googleスプレッドシートかなぁ
フォームを作って入力してもらうと、スプレッドシートにデータが溜まる
後は定期的に確認するだけ
0344名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 21:28:14.83
>>342
口頭で来るの?ですかね?
送るべき書類と宛先の指示が随時降ってきて、それを随時発送する感じです

>>343
ふーむそうすると結局データ溜める時には発送するごとにnを手入力して記録してかないといけないわけですね・・
バーコードの使用も考えたんですが、仕様により各郵便物に直接バーコードをつけることができません。
事前にn1〜n50の名称それぞれに特定のバーコード振っておいてそれをリーダーで読むってのも考えたんですが、それじゃプルダウンメニュー50通りから選んでるのと変わらないんですよね
0345名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 21:49:56.96
50箇所のうち、今日はどこに何通送ったか
・・・を記録できればいいってこと?

プルダウンから探すのも面倒だっていうなら
50個のボタンでもつくって、縦10行*横5列とかでも並べて
ボタン押したら他のところで加算されていくようにでもしたら?
それぐらいなら目視でいけるのでは
0346名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 22:01:11.49
>>345
大体そうですが、正確にいうと送った順番も必要になります
aabbcの順で5件送ったならababcの順で記録されるのはNGということです
ボタン作るってのはいいかもしれないですね!
反射神経さえあればプルダウンメニュースクロールするよりは素早くいけそうですし、順番も遵守できますね。
試してみます。ありがとうございます。
0347名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 23:20:57.24
VBA初心者なもので、>>345で教えていただいたボタン設置が上手くできません・・
例えばシート2にボタンを50個ずらっと配置して、押すとシート1のセルA1〜50に上から順に入っていくような感じにするにはどうすればいいでしょうか。(紙出力の関係上51通目以降は1〜50のデータを消してまたA1〜50に入れます)
0348名無しさん@そうだ選挙にいこう
垢版 |
2019/03/19(火) 23:58:50.97
教えてください。

シート1のBからF列の、5行目から下に向かって表があります。
表の行数は、そのときどきで変わるので不定です。最悪でも1行(つまり6行目)はデータがあります。

この表を、D列、その次にB列という優先順位で並べ替えをしたいのですが、
VBAでどう書けばいいのか教えください。
行数が不定というところがネックで、わかりません。
まず最下行の行番号を取得して、範囲を指定する、という方法しかないとは思えないんです。
何かスマートな書き方があるかと思います。よろしくお願いします。
0349名無しさん@そうだ選挙にいこう
垢版 |
2019/03/20(水) 00:27:02.74
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

エクセルvbaを使って、PC本体の設定時間にかかわらず、現在の時間を取得することはできないでしょうか。

どこかにネット経由でアクセスして、現在の時間を取得することができればと思っています。

このようなことが可能であれば、その方法を教えてください。
0352348
垢版 |
2019/03/20(水) 01:34:15.37
>>350
本当にどうもありがとうございました
0355名無しさん@そうだ選挙にいこう
垢版 |
2019/03/20(水) 12:26:31.49
>>350
345.347の者です
頂いたファイルを元にまっさらなシートに完全再現することはできたのですが、所定の様式だとボタン押しても入力されなかったり、入力する位置が違ってたりします
要は最終行の指定が上手くいってないんだと思います
具体的にはB6〜16に入力したくて、B1.2は空欄、B3はC以降と結合して文字入り、b4.5は空欄という感じだと、どのように変えればいいでしょうか・・
0357名無しさん@そうだ選挙にいこう
垢版 |
2019/03/20(水) 13:25:39.10
>>355
最終行 = 確認シート.Cells(Rows.Count, 1).End(xlUp).Row
入力行 = 最終行 + 1

最終行 = 確認シート.Cells(Rows.Count, 2).End(xlUp).Row
入力行 = 最終行 + 1
If 入力行 < 6 Then 入力行 = 6
0361349
垢版 |
2019/03/20(水) 19:37:29.76
>>350
期間限定のアプリ公開するためです。ぜひともお願いします。
0362名無しさん@そうだ選挙にいこう
垢版 |
2019/03/20(水) 20:21:31.92
先程のRS-232Cの質問です

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

PCからteraterm等でコマンド「aaa」と送信すると「aaa,111」と返してくる機器があるとします
画像の様な物を作りたいのですが出来ますか?
mscommを使うと思います
VBAはド素人です
よろしくお願いします
http://imgur.com/fgus2av.png
0365名無しさん@そうだ選挙にいこう
垢版 |
2019/03/20(水) 20:40:48.60
>>361

何か変なことやろうとしているけど、まぁいいか
URLはここのをテキトーに変えてくれ
http://www.nict.go.jp/JST/http.html

Sub foo()
Set httpReq = CreateObject("MSXML2.XMLHTTP")
httpReq.Open "GET", "https://ntp-a1.nict.go.jp/cgi-bin/jst";
httpReq.Send
Do While httpReq.readyState < 4
DoEvents
Loop
Set reg = CreateObject("VBScript.RegExp")
'RegExpオブジェクトの作成
Set reg = CreateObject("VBScript.RegExp")

'正規表現の指定
With reg
.Pattern = "<BODY>[\s\S]*?<" 'パターンを指定
.IgnoreCase = True '大文字と小文字を区別するか(False)、しないか(True)
.Global = True '文字列全体を検索するか(True)、しないか(False)
End With
str2 = httpReq.responseText
Set Matches = reg.Execute(str2) '正規表現でのマッチングを実行
For Each Match In Matches
msg = Replace(Replace(Replace(Match.Value, vbCrLf, ""), "<BODY>", ""), "<", "")
Next Match
MsgBox Format((msg + 32400) / 86400 + 25569, "yyyymmdd_hhmmss")
End Sub
0370名無しさん@そうだ選挙にいこう
垢版 |
2019/03/20(水) 23:16:59.26
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

 Bに摘要、(Cに価格、Dに数量)Eに金額
摘要 価格 数量 金額
1 常温 999 1 999
2 常温 1000 5 5000
3 要冷蔵 1000 1 1000
4 要冷蔵 10000 0 0
5 常温 9000 1 9000
6 合計金額
7 送料

送料は2万円以上で常温のみは無料、要冷蔵が含まれる場合600円
2万円以下の場合常温のみの場合500円、要冷蔵が含まれる場合800円
このような場合はどんな関数を使えばよいのでしょうか?
0374名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 10:34:56.02
今までずっと現場仕事で今度事務職にまわされそうでEXCEL等使うことになりそうなんですが
事務職つくまでに自分なりに自宅でやる場合、どのような本やサイト見てやればいいものなんでしょうか?

また家にオフィス導入しておらずLibreOffice 6.0しかないのですが、これでも練習になるでしょうか?

くだらなくレベル低い質問してしまい申し訳ありませんがよろしくお願いいたします。
0375名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 11:12:48.10
excelの資格で使えるのって何?
0376名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 11:31:07.78
>>374
卑下しなくてもいいぞ
とりあえずは、別シートの数値のsum()やaverage()ができて、印刷範囲の設定が出来るぐらいでいいと思う
何を覚えれば良いかは会社で聞いたほうが早い

libreでも練習にはなるけど、見た目が違う事は覚えておいた方が良いと思う
表示→ユーザーインターフェイス→タブ
で少しEXCELに似せることは出来る

>>375
一番いいのはMOSだけど、
なんの初級資格でもいいから取っておけばok
0377名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 12:18:01.82
>>374
とりあえずショートカットキーを覚えれば潰しはきくんじゃないかな
Excelをどう使うかは、職場次第だからあまりあれもこれもと身構える必要はないかと
0381名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 13:24:44.25
たまに答えてくれる人もいるからスレチか微妙
ただgoogleスプレッドシートとExcelだと関数違ったりするから気を付けないといけない
0386名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 14:17:18.98
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

today関数やnow関数が処理を重くするという記事を読んだのですが
これらの揮発性関数の代わりに使える関数はありますでしょうか?
0391名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 14:36:24.28
テーブル作らないと
数値を入力して昇順にして

すうち  名前 ID とかがあって 数値で入れ替えても名前も動くの?
0393名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 14:53:54.97
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013とGoogleスプレッドシート
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

複数列のセル参照表示について、Googleスプレッドシートの場合、
OFFSET関数を使用すると配列数式にしなくとも複数列を表示させる事ができますが
OFFSET関数を使わずindex関数で列数の項目に0を入れると
OFFSET関数のように参照範囲全てを表示させる事ができます。
これと同じことををExcelでやろうとするとOFFSET関数は配列数式が必要で、
index関数は複数列の表示ができないようです。
Excelで複数列の表示をまとめて行う関数の使い方は無いでしょうか?
0397名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 16:02:49.53
>>376>>377>>378>>379
クソみたいな質問にも関わらずありがとうございます!

今はテンプレの稟議書にただ文字入れたり回り太枠で覆ったりして文書作る位しかやったこと
ないので、別シートの数値のsum()やaverage()ができて、印刷範囲の設定、ショートカットキー
をせめて覚えて後はバンバン後輩とかに聞きまくろうと思います笑。
0399名無しさん@そうだ選挙にいこう
垢版 |
2019/03/21(木) 16:38:10.47
【1 OSの種類         .】 android 8.0
【2 Excelのバージョン   】 Excel for android
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
タッチパネルから列の幅を数字で指定する操作を教えてください
キーボード、マウスは接続していません
0401349
垢版 |
2019/03/21(木) 20:04:28.74
>>365
ありがとうございます。いろいろ勉強になりました。
0402名無しさん@そうだ選挙にいこう
垢版 |
2019/03/22(金) 15:23:53.98
エクセルで図形が「印刷(またはプレビュー段階で)」横長長方形になってしまいます。
例えば複数正円がありとして、全部微妙に大きさが異なります。
正円作成は「シフトキー押しながら」描いているので確実に正円だと思います。

プロパティで
セルに合わせて移動やサイズを変更しない。
を有効にしても全く変わりません。

不思議なのは、ページ中央に配置すると正円を保ち、
左右どちらかに配置すると横に伸びるようです。
これは円じゃ無く四角でもなります。

これはどうしたら直せるのでしょうか?

【1 OSの種類         】 Windows10
【2 Excelのバージョン   】 Excel2010 & 2013
0405名無しさん@そうだ選挙にいこう
垢版 |
2019/03/22(金) 21:15:54.09
>>402
これは?

位置合わせのオプションを無効にする

1.図形またはその他のオブジェクトをクリックし、[描画ツール] の下にある [書式] タブで [配置]
をクリックします。

2.これらのオプションをオフにするには、[グリッドに合わせる] または [図形に位置を合わせる]
チェック ボックスをオフにします。
0406名無しさん@そうだ選挙にいこう
垢版 |
2019/03/23(土) 17:36:46.45
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A1セルに【1-2-10】と入力された中から【10】だけを抜き出す関数はありますか?
今は =RIGHT(A1,LEN(A1)-FIND("-",A1)) で【2-10】を抜き出して、もう1度同じ関数で【10】だけ抜き出しています

よろしくお願いします
0410名無しさん@そうだ選挙にいこう
垢版 |
2019/03/23(土) 19:50:25.40
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

印刷範囲をユーザー指定のページ範囲にして、各ページの同じ位置にある特定セルの数字を1,2〜と増やしていく場合、どのようなコードになりますでしょうか。
例えば1ページ目はC2〜G2にどのページでも変わらない日本語ワード、H2に1
2ページ目はC69〜G69に1ページ目と変わらない日本語ワード、H69に2(H2の数値 + 1)
という感じです
0412名無しさん@そうだ選挙にいこう
垢版 |
2019/03/24(日) 14:59:41.22
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

【1】が入力されたセルと、【1,2,3】が入力されたセルを、1が入っているのを理由に同時にカウントしたいです。
シチュエーションはアンケートの複数回答です。
どのような関数が適切でしょうか?
また、当初countif(範囲,"*1*")が適切かと思っていたのですが、これだと【1,2,3】のセルしかカウントされません。
*は0字以上の不特定の文字を表すと見たのですが、なぜ上記の関数では間違いなのでしょうか?

二点、よろしくお願いします
0413名無しさん@そうだ選挙にいこう
垢版 |
2019/03/24(日) 15:31:16.63
>>412
0文字以上のワイルドカードは無い
=NOT(ISERROR(FIND("1",A1)))
等で作業列作るしか無いんじゃないかな

以下はMSDNからの引用

ワイルドカード文字を使う。

検索条件 には、疑問符 (?) とアスタリスク (*) をワイルドカード文字として使用することができます。
ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは 1 文字以上の任意の文字列を表します。
ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前にチルダ (~) を付けます。
https://support.office.com/ja-jp/article/COUNTIF-%E9%96%A2%E6%95%B0-e0de10c6-f885-4e71-abb4-1f464816df34
0416名無しさん@そうだ選挙にいこう
垢版 |
2019/03/25(月) 02:21:28.40
【1 OSの種類    】 Windows7
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか  】 いいえ
【4 VBAでの回答の可否】 可

別のセルに連動させる質問です。

去年から部署移動になりエクセル初心者の状態から少しずつ使える様になってきましたが、
まだまだ使いこなせていませんのでご教授願います。

元々ある作業の進捗などを入力する作業を簡略化と間違い防止の為に、
マクロ等を使って改良したいと考えています。

単独でのドロップダウンリストは作れますが連動が出来ません。

1、まず黄枠の担当者の名前をドロップダウンリストで入力すると、
 緑枠の担当者コードが自動で選ばれると同時に、データ作成進捗状況が黄色で作成中となる。

2、次に赤枠の加工理論値を入力すると、青枠の作成日がその入力日で入力されると同時に、
  データ作成進捗状況が青で作成済となる。

このような状態に出来れば、少しでも仕事の負荷軽減になるのでよろしくお願いします。


https://i.imgur.com/pMYvSqU.jpg
0418416
垢版 |
2019/03/25(月) 08:29:55.35
>>417
夜分遅くに大変申し訳ありません&#128166;
早速今日使わせてもらいます。
ありがとうございました
0420名無しさん@そうだ選挙にいこう
垢版 |
2019/03/26(火) 02:31:11.62
単独では使えなくて、関数の引数にセル範囲を指定するような場合と組合せる。

たとえば入力規則のリストにINDEXと組み合わせた数式を指定すると、
項目数が増えてた場合でも参照先の範囲が勝手に広がってくれる。
0422名無しさん@そうだ選挙にいこう
垢版 |
2019/03/26(火) 07:26:29.35
ソートしてベスト10確認したいときとかに使ってるよ
0426名無しさん@そうだ選挙にいこう
垢版 |
2019/03/26(火) 10:42:48.52
VBAでデータの入力規則のリストを作ろうと思っています
セルをクリックしたら複数のシートから必要なシートの必要な項目をリストにしたいのですが、シートの指定を変数にするとうまくいきません

With Range("D2:D10").Validation
.Delete
.Add Type:=xlValidateList, _
Operator:=xlEqual, _
Formula1:="=Sheet4!$G$2:$G$10"
End With

Sheet4の部分をSheets(i)のようにしたいのですが、やり方を教えてください
0428名無しさん@そうだ選挙にいこう
垢版 |
2019/03/26(火) 11:31:07.57
>>427
ありがとうございます!
うまくいきました
感謝です!
0429名無しさん@そうだ選挙にいこう
垢版 |
2019/03/26(火) 13:45:09.50
たびたびすみません
$G$2:$G$10の部分を変数で指定する方法を教えてください

Formula1:="=" & Sheets(i).Name & Range(Cells(j, l), Cells(k, l)).Address
これだとダメでした
0435416
垢版 |
2019/03/26(火) 21:11:35.26
>>417
昨日試してみたのですが
どうもバージョンが古いので画像の様なアラームが出ます。
あと今年中にはバージョンアップする予定ですが
今のエクセル2003ではうまくいかない様です。
せっかく作っていただいたのですが
今年中にはバージョンアップする予定ですので
そちらの方で使わせていただきます。

https://i.imgur.com/2gVSv3H.jpg
https://i.imgur.com/ZtKE2jC.jpg
0436名無しさん@そうだ選挙にいこう
垢版 |
2019/03/26(火) 22:28:11.94
2003は無理がある
単なる家計簿に使うならまだしも、複雑な帳票はキツイ
iferror辺りすらないのはキツすぎる

・EXCELonline(無料、マクロ一切使えない)
・goooleスプレッドシート(無料、マクロそのままでは使えない)
・libraoffice(忘れた)

色々無料版とかもあるからガンバレ
0437名無しさん@そうだ選挙にいこう
垢版 |
2019/03/26(火) 23:28:39.59
質問があります。
A列に1,4,6,9、11,13,14
B列に2,4,7,8,11,15 と入力してあるとします。

AとB列を照らし合わせて同じ数字であればそのセルには着色や枠など同じ数字が使われていることを視覚的にわかるようにするにはどうすればいいでしょうか。
上の例では4,11のセルが着色等されるイメージです。
VBAは使えないので数式や条件付き書式などでやれる方法はないでしょうか。
一つ一つのセルに条件付き書式でも可能でしょうけど実際は数百行もあるので数百も同じ条件付き書式を作るのは現実的ではありません。
0440名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 00:26:41.26
説明が下手ですみません。
437の例ではたまたま隣り合ったセル同士が同じ数字になってしまいましたが
実際は行違いで同じ数字があるといった場合です。
つまり隣のセルが同じ数字か?ではなく隣の列の中に同じ数字のセルがあるか?という判定になります。
また、数字とはっきり書いてますが実際は英字と数字の組み合わせになるので>>439のは違うのかと(今手元にデータもエクセルも無い状態です)
0441名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 00:30:59.97
編集途中で書き込んでしまいました。失礼しました。
439はnunberという文字を見た限り英字と数字の組み合わせには対応してないのかなという気がします。(今手元にエクセルが無いので確認は出来てませんが)
0446名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 00:49:55.00
>>444
ありがとうございます。
countifは使い慣れてるはずなんですが記載の内容で果たして希望通りの結果が得られるのか
いまいちイメージ出来ないため明日会社で検証させて下さい。
0447名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 01:04:52.56
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい・
【4 VBAでの回答の可否】 可・
ブック「入力フォーム」があります。「入力フォーム」からブック「管理シート」を開きます。(開かなくても問題ありませんが。)
A1に番号A2に1が入力されています。マクロでA列最下行の1行下に最下行の値を+1して入力。
このセルの値をコピー、値をコピー後、「入力フォーム」にセルA1に張り付けを自動化したいと思います。
問題はさっぱりできないこと。
自動記録でだと1だけになります。
' Macro4 Macro
Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
Step:=1, Stop:=2, Trend:=False
Selection.End(xlDown).Select
Selection.Copy
End Sub
解決方法があればご教授願います。
0450名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 11:27:51.03
>>447
Sub Macro1()
Sheets("管理シート").Select
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
Cells(最終行 + 1, 1) = Cells(最終行, 1) + 1
Sheets("入力フォーム").Cells(1, 1) = Cells(最終行, 1) + 1
End Sub
0451名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 15:28:46.53
うちのExcelで日付を和暦表示にしたら
すでに平成の次の元号が表示されたんですけど。
これすでにMicrosoftの日本チームが情報をしいれていて、オンラインで自動アップデートされたから?

ちなみに新しい元号は「乃木」です。
5月から乃木元年。
0455名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 15:42:05.07
>>453
事実が証明してる。>>454
著名か?たしかにアイドルで似たのあるな。でもあれは乃木「坂」
0458名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 17:39:31.30
2019とオンラインでは再現しないし、そんな例もないな
アップデート失敗してるっぽい
再インストールかアップデートのアンインストールで直ると思う
0464名無しさん@そうだ選挙にいこう
垢版 |
2019/03/27(水) 22:52:37.47
このレジストリで追加できる

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2019 05 01"="元号_元_Gengou_G"
0466447
垢版 |
2019/03/27(水) 23:24:30.88
>>450
ありがとうございます。一回でできました。
…1つのブックではなく「管理シート」「入力フォーム」と別のファイルにして、
入力フォームをリネームして保存するマクロを作成中です。
Sheets("入力フォーム").Cells(1, 1) = Cells(最終行, 1) + 1 ここで「インデックスが有効範囲にありません」とでて、
「入力フォーム」のシート”入力フォーム”A1に番号が転記されません。

だれか下記の質問がわかる方、いませんか?
ファイルを”1_201903272308.xlsm"とリネームしたい
リネームも下記のようにしたのですが、ステートメントの最後と出ます。
ActiveWorkbook.SaveAs Filename:=myPath & Sheets("入力フォーム").Cells(1, 1)"_ & Format(Date, "yyyymmdd")," _
FileFormat:=xlExcel8
セルに=Now()をいれて=CONCATENATE(A1,B1)のようにしたほうがよいのでしょうか?
よろしくお願いします
0469名無しさん@そうだ選挙にいこう
垢版 |
2019/03/28(木) 08:27:52.65
1枚目のシートのa1〜1000に1から1000までの数字が入っています
この数字を別シートの特定セルに、ちょうどexcel→wordの差し込み印刷のような感じで入れたいのですがいい方法ないでしょうか
https://tech.nikkeibp.co.jp/it/pc/article/technique/20090727/1017329/
このページの方法で同じようなことはできますが、いかんせんファイルが重くなってしまい使いづらい次第でございます
0471名無しさん@そうだ選挙にいこう
垢版 |
2019/03/28(木) 08:56:35.11
>>466
以下のような形で、ブックを開いておく必要がある

set 入力ブック = workbook,open(パス)
入力ブック.Sheets("入力フォーム").Cells(1, 1) = 入力ブック.Sheets("入力フォーム").Cells(最終行, 1) + 1

>>469
1000ぐらいで重くはならんでしょ
cells(1,2).value=cells(3,4).value
のような形にすれば軽い
cells(1,2).copyとかはかなり重い
0475名無しさん@そうだ選挙にいこう
垢版 |
2019/03/28(木) 12:42:34.92
>>469の補足です
a1〜1000を範囲選択しつつ、別シートの特定セルを選択した状態で印刷すると、特定セルの位置に1〜1000の番号が入った紙が1000枚出力される、というようなことをしたいイメージです
0476名無しさん@そうだ選挙にいこう
垢版 |
2019/03/28(木) 12:59:45.17
Excelで1000枚差し込み印刷とかキチガイしかやらんよ
普通に1回印刷するだけでも遅いのに無茶言いすぎ1日たっても終わんないよ
0477名無しさん@そうだ選挙にいこう
垢版 |
2019/03/28(木) 18:24:07.62
そんなことない 年末調整の印刷するのに300枚位差し込み印刷したことある VBAでループ回すだけだし時間なんかかかるわけない
0482名無しさん@そうだ選挙にいこう
垢版 |
2019/03/28(木) 19:54:46.60
シート1000枚1回印刷の方がいい
1000回印刷はは地獄
0486名無しさん@そうだ選挙にいこう
垢版 |
2019/03/28(木) 21:48:22.66
1000人ならwebに移行しなよ
毎月給料明細なら10万以上かかってるんじゃないか?
俺が使ってるたのめーるはcsvあげるだけで良いから楽ちん
0487447
垢版 |
2019/03/29(金) 00:17:23.59
>>468
ありがとうございます。
まだ試すことができませんが。
>>471
ありがとうございます。引数は省略できませんとでて先に進めませんでした。

Sub Macro1()
Set 入力ブック = Workbooks.Open = "C:\Users\Documents\管理シート.xlsx"
入力フォーム.Sheets("入力フォーム").Cells(1, 1) = 入力フォーム.Sheets("入力フォーム").Cells(最終行, 1) + 1
Sheets("管理シート").Select
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
Cells(最終行 + 1, 1) = Cells(最終行, 1) + 1
Sheets("入力フォーム").Cells(1, 1) = Cells(最終行, 1) + 1
ActiveWorkbook.SaveAs Filename:="C:\Users0\Documents\管理シート.xlsx" & Sheets("入力フォーム").Cells(1, 1) & "_" & Format(Date, "yyyymmdd"), _
FileFormat:=xlExcel8
End Sub
ファイル「管理シート」にsheet[管理シート] ファイル「入力フォーム」にsheet[入力フォーム]があります。
…困ったことにA列の通し番号が消されて飛んでしまうんです。いずれはサーバに保存します。
0488名無しさん@そうだ選挙にいこう
垢版 |
2019/03/29(金) 00:25:32.32
>>475です、色々意見ありがとうございます
>>469に貼ったurlのやり方だとシートが1000枚できてしまうため、印刷は1回で済むもののどんなに記入されたデータが少なくても結構な重さになります
なので1〜1000の数字が書かれたシートと印刷用シートの2枚のみがあるファイルを用意し、数字シートから印刷用シートに数字のみ差し込んで印刷できるようにしたら軽いままできるのではないかと思った次第です
0489名無しさん@そうだ選挙にいこう
垢版 |
2019/03/29(金) 00:38:56.24
>>488
やっぱりシート1000枚になるのか
そら重いわ

そうじゃなくて、

・管理シート
1 みかん 100円
2 りんご 200円

・出力シート
IDを入れるセル
上記IDに紐付いたをvlookupで引っ張ってくる

という構成にして、マクロは
・「IDを入れるセル」のIDを変更
・印刷
これを繰り返すだけでいいんだよ

ぱっと作ったけど、大体こんな感じ
https://dotup.org/uploda/dotup.org1808426.zip.html
0490名無しさん@そうだ選挙にいこう
垢版 |
2019/03/29(金) 05:00:49.44
またバカがゴミみたいな処理広めようとしてんのか
Excelはプリンタドライバとの通信速度がクソだから印刷回数を減らさないと遅いんだよ
何をしたらまずいのか全然わかってないな
0492名無しさん@そうだ選挙にいこう
垢版 |
2019/03/29(金) 07:15:16.11
使用環境によるとしか言えないわ。
印刷回数が増えるとPCとプリンタ間で渋滞するのは事実だし。
例えばうちは複合機に繋がってる端末と印刷専用機に繋がってる端末がある。
前者はIDカードとひも付けで、ジョブが多くてもプリント時に他の人に割り込まれない代わりに一回に20ジョブしか選択できない。
後者は送ったら自動的にプリントされるけど、間に他の人のジョブが入れば当然割り込まれる。
俺は基本的に印刷回数を少なくするマクロしか組まないけど、自分専用のプリンタがあって放置して別の作業やればいいならなんでもいいわな。
0493名無しさん@そうだ選挙にいこう
垢版 |
2019/03/29(金) 08:28:44.11
仕組みも実務もわかってないバカが、自分が答えやすいってだけのバカ丸出しの理由でクソコード教えるのが迷惑なんだよ
繰り返すだけでいいんだよ、とかアホか。いいわけねーだろ
0495名無しさん@そうだ選挙にいこう
垢版 |
2019/03/29(金) 10:26:41.19
>>489
だけど確かに>>490だわ

>>491
間違いなくこれが正解
俺も給料明細格子状に並べてたわ。自分でやったのに忘れてた、スマン
今なら縦一列で作る

>>492
そう、自分専用プリンタがあれば何の問題もない話

>>493-494
は存在してる意味の無い無能だな
0496名無しさん@そうだ選挙にいこう
垢版 |
2019/03/29(金) 17:08:37.53
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

すいません、ちょっと質問なのですが
NASに複数のエクセルのファイルを置いていて、例えばこういうパスだとします

x:\nas\A.xlsx
x:\nas\dir\B.xlsx

で、B.xlsxからA.xlsxを参照しているのですが
以前はB.xlsxを編集する際に

1.x:\nas\A.xlsxを参照しているセルをコピ-ペースト
2.x:\nas\A.xlsxを参照しているセルを置換(参照先ファイルを変更する置換、又は参照先ファイルは変わらないが参照先セルを変更する置換)
3.x:\nas\A.xlsxを参照している数式が入ったセルでf.2を押して編集モードにしてエンター

このいずれの場合でも、「値の更新」というダイアログが出てきて、参照先セルを手動で指定しないといけなくなってしまいました。
又、B.xlsxファイルを新規で開いたときにもリンクエラーが必ず出て、手動で指定するダイアログが表示されます。

外部ファイルを参照しているセルが100個あった場合、セルをペースト又は置換する度に100回ファイルを指定させられ、これでは使い物になりません
ファイル名などが微妙に間違っている場合こうなるのは知っていますが、f.2を押してファイル指定した後に、再度f.2を押してもやはり
値の更新ダイアログが出るので、ファイル名やディレクトリなどが間違っているという事は考えられません。

以前は、置換すれば一瞬で数式は更新されていたはずなのですが、なぜこういう事になるんでしょうか?
0505名無しさん@そうだ選挙にいこう
垢版 |
2019/03/31(日) 18:24:38.59
>>504
??
サブスクリプションのOffice365以外は普通買い切りだろ?
メジャーバージョンアップは無いので(優待はあっても)アカウントもへったくれも無い

新バージョンリリースは大抵365の方が先だけどな
0506名無しさん@そうだ選挙にいこう
垢版 |
2019/03/31(日) 22:32:49.85
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 否
【4 VBAでの回答の可否】 否

関数が入っているところに誤って手入力で値に書き換えられていないかを監視したいのですが
関数か値かを識別するにはどうすればいいですか?
0509506
垢版 |
2019/04/01(月) 08:30:49.67
関数のみもしくはテキストのみを拾うCOUNT系の関数はないですか?
もしくは条件付き書式での色変更設定でもいいです。
0511名無しさん@そうだ選挙にいこう
垢版 |
2019/04/01(月) 09:43:19.51
あまりスマートなやり方でもないけど、
まるっきり同じシートをコピーしておいて、元のシートとコピーしたシートとの書き換え監視対象のセル同士を照合して
差異が有ればココガチガウと表示する関数をコピー先のシートか、または更に新規のシートに記述
0512名無しさん@そうだ選挙にいこう
垢版 |
2019/04/01(月) 09:55:55.92
2010には左右のシートだけでなく先頭や最後のシートに移動する
ボタンがありましたが2016や1019でもそのボタンを表示させることは
出来ませんか?
0513名無しさん@そうだ選挙にいこう
垢版 |
2019/04/01(月) 11:22:11.38
Excel2019のOfficeテーマってカラフル、濃い灰色、黒、白の
四種類しかないのですか?
2010のときのような銀のグラデーションのようにしたいのですが。
0518名無しさん@そうだ選挙にいこう
垢版 |
2019/04/02(火) 18:39:32.18
質問です。
例えば
ExcelでA1セルの日付から-30日(一ヵ月前)になったらB1セルが黄色になる、C1セル(完了日)に文字が入力されたらB1セルの色が無くなる

という関数は出来ました。

別シートで期限だけで見れる表を作りたいのですが、
別シートから参照する際、参照の関数がC1セルに入ってしまいB1セルに色が付きません。

C1セルにA1セル以降の日付が入った場合のみB1セルの色付けが解除される関数を分かる方いませんか。

それとも手作業でC1セルに入力するしかないでしょうか。
0519名無しさん@そうだ選挙にいこう
垢版 |
2019/04/02(火) 19:41:19.01
【1 OSの種類】Windows10
【2 Excelのバージョン】Excel2016
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】否

日付について、例えば「4.1」と入力した時、「04.01」と表示したい
月と日をそれぞれ2桁で表示させたい
※入力ではスラッシュは使用せずドットを使用
表示形式で「00.00」としてみたのですが、日が「10」となってしまいます
0522名無しさん@そうだ選挙にいこう
垢版 |
2019/04/02(火) 21:27:41.64
表示形式でmm.ddにすればいい話とは違う?
0523名無しさん@そうだ選挙にいこう
垢版 |
2019/04/02(火) 22:10:10.96
【1 OSの種類】 Windows10
【2 Excelのバージョン】 2016
【3 VBAが使えるか】 否
【4 VBAでの回答の可否】 否

条件付き書式について教えてください。
A列に日時の情報があります。
※例:
2019/04/01 00:00

これを日付が変わるポイントで間に枠線を入れたいのですがどうすれば良いでしょうか
範囲はA:Hです

※イメージ:
2019/04/01 00:00
2019/04/01 05:00
2019/04/01 11:00
──────────
2019/04/02 00:00
0524名無しさん@そうだ選挙にいこう
垢版 |
2019/04/02(火) 22:12:07.67
【1 OSの種類】 Windows10
【2 Excelのバージョン】 365
【3 VBAが使えるか】 否
【4 VBAでの回答の可否】 否

最近365にしました。
アイデアって使えないんですか?
マークリボンはあるけど&#9889;マーク出てきません
0526名無しさん@そうだ選挙にいこう
垢版 |
2019/04/02(火) 22:56:41.91
>>520-522
ありがとうございます
やはり難しかったんですね
各々が入力する様式なので、2桁表示で揃えたかったんです
10日等は当然2桁になるので、1日等が課題でした
mm.ddは入力時にスラッシュを利用しませんか?
早速明日試してみます
0528名無しさん@そうだ選挙にいこう
垢版 |
2019/04/03(水) 17:10:10.26
Excel2013です。

A列 B列
あ  100 
あ   0
い   200
う    0
え   100

こんなリストにフィルタをかけたい
A列う、え、を非表示ただしB列が0以外を除く
(あ、いのすべてと、う、えで0以外をピックアップしたい)
0533名無しさん@そうだ選挙にいこう
垢版 |
2019/04/04(木) 23:47:05.02
すいません、漠然とした質問なんですがExcelで文字を入力してサジェスト機能で候補を出したりすることは可能でしょうか?グーグルとかで出てくる候補を出してそこから選ぶみたいな感じです。よろしくおねがいします。
0538名無しさん@そうだ選挙にいこう
垢版 |
2019/04/05(金) 12:15:46.94
vlookupで2列の組み合わせは一回で探せるんでしょうか?
やはりいったん2列を組み合わせてそれを参照するべきでしょうか?
0546名無しさん@そうだ選挙にいこう
垢版 |
2019/04/05(金) 15:29:50.97
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

画面上部の「fx(関数の挿入)」を押した先の「関数の検索」欄が機能しません。
普通なら「合計」と入れればSUMなどが出ると思うのですが、「ほかの言葉を使って質問してください。」と出ます。
改善策ないでしょうか。
0548名無しさん@そうだ選挙にいこう
垢版 |
2019/04/05(金) 15:32:42.55
>>544
小さな会社にいたときに
事務職の採用で部長が面接担当する人に
「vlookup関数を知ってる人、必ず使えそうな人を採用してきて」、と言ってたのを思い出した。
もちろん必要条件で十分条件ではないが。
0553名無しさん@そうだ選挙にいこう
垢版 |
2019/04/05(金) 18:55:48.66
index+matchを使うようになってからvlookupを全く使わなくなったんだけど、vlookupを使ってる人は検索範囲の左側の列から値を引っ張りたい時はどうしてるんだろう?
0556名無しさん@そうだ選挙にいこう
垢版 |
2019/04/05(金) 21:01:38.47
>>555
単純な興味からの質問なんだが、VBAで普通に組むなら多分ワークシート関数のmatch利用が早いんだろうけど、ADO使ってSQL使うと速度的にどんなもんなの?
0559名無しさん@そうだ選挙にいこう
垢版 |
2019/04/05(金) 21:25:09.69
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

高速Vlookupとは何でしょうか?
0564名無しさん@そうだ選挙にいこう
垢版 |
2019/04/06(土) 03:31:57.20
【1 OSの種類         】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    】 いいえ
【4 VBAでの回答の可否 】 否

vlookupで検索の型をTRUEにすると「検索値が見つからない場合、検索値未満の最大値」になる
この値を「検検索値以上の最小値」にすることは可能ですか?
0565名無しさん@そうだ選挙にいこう
垢版 |
2019/04/06(土) 06:45:31.45
帳票を作ったExcelのワークシートをデータ入力用のフォームに転用することにしました。
データを入力するセル以外にロックをかけて入力するセル以外を選択できないようにして入力するのを楽にしようと思っていたら、TABキーを押してもENTERキーを押してもうまく次のセルに移動しません。
具体的にはTABキーの場合はほとんどは上手くいっているのに、1ヶ所だけ同じところを行ったり来たり3回繰り返してから次のセルへ移動します。
ENTERキーの場合は上に行ったり下に行ったり、めちゃくちゃに入力セルを移動します。
帳票自体がセルを小さい方眼状に詰めたものに、セルの結合をすることで体裁を整えた作りになっているので、その辺が影響しているのかな、と思うところもあります。
この場合、必要なセルに順番でうまく移動させる方法はありますか?
フォームを作り直した方が早いでしょうか?
0567名無しさん@そうだ選挙にいこう
垢版 |
2019/04/06(土) 09:17:09.76
>>565
こういうのはタブオーダー(タブキーを押した時の順番)って言う

セルの結合の場合は左上セルがそのセルとみなされる
さらにロックを掛けた場合の挙動は知らない

一番いいのは入力用のセルを用意して、そこからデータを引っ張ってくることかな
こうすれば入力漏れもまぁないだろう
https://i.imgur.com/kWfMYFQ.png
0569564
垢版 |
2019/04/06(土) 13:59:30.73
宅急便の料金のように重さ・サイズを入力すると自動に金額が返されるような表を作りたいです
vlookupで検索の型をTRUEにすると「当てはまる検索値が見つからない場合、検索値未満の最大値」が返される
この値を「検索値以上の最小値」が返されるにはどの関数をしたら良いでしょうか?
0571564
垢版 |
2019/04/06(土) 14:33:17.65
>>570
有難うございます!
試してみます
0572564
垢版 |
2019/04/06(土) 14:53:56.17
>>570
下のようなテーブルを作っておいて
75という数値を入れると「検索値以上の最小値」である80サイズの料金850円が返されるような感じにしたいです・・

料金表 
サイズ 金額 
60 700
80 850
100 1,000
120 1,200
0578564
垢版 |
2019/04/06(土) 18:43:44.78
>>573-577
みなさま有難うございます!
まずはテーブルを作って、荷物のサイズを入力するだけで 自動的に料金がかえされるものを想像しておりました・・
MATCHとINDEXという関数は数値を入力するだけで数字が返される関数ではないですよね?
vlookupと組み合わせるってことでしょうか?((((;゚Д゚)))))))
0579564
垢版 |
2019/04/06(土) 18:56:08.46
>>566さんのINDEXとMATCHでいけますね
凄い便利だ・・

有難うございました!
0580名無しさん@そうだ選挙にいこう
垢版 |
2019/04/06(土) 19:01:48.81
>>578
indexを使うならVLOOKUPは不要
ただ降順にするなら、最後を-1にしてやれば検索可能だよ
何列目のところをmatchで都道府県ごとのテーブル作っておけば、都道府県の検索もできるし
0582名無しさん@そうだ選挙にいこう
垢版 |
2019/04/06(土) 19:22:29.15
【1 OSの種類         】 Windows10
【2 Excelのバージョン   】 Googleスプレッドシート
【3 VBAが使えるか    】 いいえ
【4 VBAでの回答の可否 】 否

同じ対象から同じ条件でデータを抽出する際、
FILTER関数で
=FILTER('シート1'!A31:BT,'シート1'!A31:A='シート1'!A5,'シート1'!D31:D<>"")
の場合と、QUERY関数で
=QUERY('シート1'!A31:BT,"where A is not null and A='"&'シート1'!A5&"'", -1)
の場合とだと、データ量が増えた際にどちらが軽いでしょうか?
0588名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 12:04:06.04
【1 OSの種類         】 Windows7
【2 Excelのバージョン   】 Googleスプレッドシート
【3 VBAが使えるか    】 いいえ
【4 VBAでの回答の可否 】 否

5,421,700(仮) と入力されているセルから、(仮) 以外の文字列を別のセルに取得したいです
どういった関数を使用すればいいのでしょうか。
LEFT関数も検討しましたが、15,852,200(仮) といった文字列もあるため、単純に左から何文字では取得できませんでした
「右から3文字」以外と指定すればできるかと思いますが、関数がわかりませんでした
皆様何卒、よろしくお願いします。
0591名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 12:12:09.17
>>589
おおお!!!
こんなに早く正確に教えていただけるとは感激です!!!
誠にありがとうございました!!!
このご恩は一生忘れません!!!!!!
0593名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 12:18:29.81
>>590
ありがとうございます!!!

>>592
ありがとうございます!!!
右から3文字消す方法は汎用性が高いので、何度もお世話になると思います!!!
本当にありがとうございます!!!
0598名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 13:14:48.92
半分趣味、半分仕事で20年ぐらいぼちぼちやって、なんとなく覚えた
仕事と言っても、手作業をちょっと楽にする程度のことにしか使ってないので、ちゃんと勉強したわけじゃないから
いまだに関数の使い方とかいちいち検索しないとわからないのがけっこうある
0599名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 14:44:18.48
関数で使用頻度高いのなんて20個くらい、凝ったことでも40個も覚えれば大抵何とかなる
それだけで毎日毎週毎月やってる作業が数秒で終わるようになると考えると自然と覚える
0600名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 14:56:44.24
空いた時間でもうちょい良くできないか?と思うようになると新しい事を覚えることができて、
その知識で更に新しい事を・・・
0603名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 19:42:33.17
大事なのは、紙ベースの帳票でキレイに見せることでなくて、
紙出力は二の次で、Excel内で管理しやすいようにデータや数式を揃えることなのかと。
0606名無しさん@そうだ選挙にいこう
垢版 |
2019/04/07(日) 21:03:23.53
縦横10×10ある表使って、

例えば、3行目を指定したときに
3行目の10個の数字(数字はランダム)中から「8」がある箇所の「列」数を取得したい

lookup
hlookup

だと上手くいかないんだよな
0615名無しさん@そうだ選挙にいこう
垢版 |
2019/04/08(月) 16:15:39.09
Excel2013
win10

D2=IF(B2+C2>100,B2+C2,"")
さらに条件付き書式で
D2に数字が出たときA2を塗りつぶしたい

条件を D2>0 にするとなぜか常に塗りつぶしになります。
どうすればよいのでしょうか?
0616名無しさん@そうだ選挙にいこう
垢版 |
2019/04/08(月) 16:20:33.24
データ用のシートにデータをフォームから貼り付けたときに、データ番号というのか、データに連続する番号を振りたいのですが、色々調べつつやってみたのですが上手くいきません。
フォームからデータを貼り付けるマクロに、どのようなコードを追加すれば上手く連番で番号が触れるでしょうか?
番号は1、2、3....みたいな感じなんですけど
0620名無しさん@そうだ選挙にいこう
垢版 |
2019/04/08(月) 22:57:08.92
A1セルに数値が入力されると空欄のB1に"要入力"と
表示させ、かつB1に手入力も可能にしたいです。
何か方法はありますでしょうか。
0622名無しさん@そうだ選挙にいこう
垢版 |
2019/04/08(月) 23:41:04.25
ヒッポリトテーブルってややこしい。
理解するこつあはありますか?
0626622
垢版 |
2019/04/09(火) 00:13:49.11
このスレ老人が多いな
0628名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 00:58:59.14
>>627

> >>621
>
> > >>620
> > B1=IF(ISNUMBER(A1),"","要入力")
>
> Excelで試したら確かにそうなりましたが何故そうなるかが分からないなー。

追加
自分の中ではA1が数値なら空欄に、それ以外なら要入力とするになるんじゃないかなと思います。わかる方教えて頂けると助かります。
0630名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 08:14:58.96
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
http://imgur.com/XaiV4xH.jpg

このような表があります。
下の表にロットNOを打ち込む度に出荷日が小さい順に表示させたいです。
D27が4/1、D29が4/2となるような感じです。
0631名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 12:36:34.84
空白のセルに以下のように入力できるようにするにはどうしたらよいでしょうか?
○○11A××
○○=固定の文字
11=任意の数字
A=五十音のどれか一文字
××=任意の数字

イメージとしては、「11299」と入力すると「○○11い99」と表示される感じです
0635名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 15:27:26.20
ここのすれはマジに神さま勢揃いだな。
0636名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 16:55:07.21
>>631
例えばA1に「11299」入力するとB2に○○11い99と表示されるイメージでいいのかな?
0638名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 17:09:58.66
>>631
>>636と数字は5桁固定前提で書くと
3桁目の数値とひらがなに対応表があるとして

B2="○○“&LEFT(A2,2)&VLOOKUP(MID(A2,3,1),対応表範囲,2,0)&RIGHT(A2,2)

とかでどうかな?
スマホから書いてるんで誤字あったら適当に直してw
かな部分がランダムなひらがなだとするとまぁまぁ面倒な式になるよ
0643名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 18:06:02.94
>>641
VBAあれば出来る
値が更新されたことをworksheet changeで感知して
更新された行のBからGまで値が入ったら
下の表をソートする感じ
0645名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 18:42:02.86
>>642
ロットNo.と出荷日の組み合わせがユニークならmatchにminとロットNo.を配列でぶち込んでindexで拾えばできるね
但しデータの数が多いとかなり重くなる
0651名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 20:07:49.88
>>649
たとえば
ロットナンバー1000、出荷日4/1
ロットナンバー1001、出荷日4/1
もありますし
ロットナンバー1000、出荷日4/1
ロットナンバー1000、出荷日4/2
もあります

1ロット100個の内10個が4/1出荷、20個が4/2出荷
のようなイメージです
0653名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 20:25:49.24
>>652
そうですね
2回出荷ですが、E27はSUMPRODUCTでロットナンバー1000かつ4/1かつ工程Aを合計した数です
ピボット使えと言われたらそれまでですが、数式でお願いしたいです。
0657名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 20:47:17.60
>>638
ありがとうございます
頂いたアドバイスをもとに条件を簡素化して再考しましたが、なぜか思い通りにいきません
添付ファイルで自分の想定では「aい678」となるはずなのですがエラーが・・
ちなみに最後の任意の数字(このファイルだと678)は1~999のいずれかになることを想定しているのですが、
RIGHT(A1,3)という指定だと右から3ケタを返すことになりますよね?
1ケタ~3ケタすべてに対応した書き方ありますでしょうか。
https://dotup.org/uploda/dotup.org1817872.xlsx.html
0661名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 21:28:57.25
セルにシート名を入力したいとネットで調べてこの関数を入力しました

=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]", CELL("filename",A1)))

うまくいったのですが、ブックを開いて何も変更していないのに閉じようとすると
保存しますかと聞かれます。
自動保存とかではなく普通に変更した時だけ聞いてくる様には出来ないでしょうか?
よろしくお願いいたします。
0662名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 21:54:08.01
>>658
ありがとうございます!
なるほどロットナンバーと日付のシリアル値を足す!
良いアイデアですね!
DATEVALUEでもできそうです!
本当にありがとうございました!
0664名無しさん@そうだ選挙にいこう
垢版 |
2019/04/09(火) 22:10:09.79
>>661
揮発性関数というものに分類される
https://docs.microsoft.com/ja-jp/office/client-developer/excel/excel-recalculation#volatile-and-non-volatile-functions

now()みたいなもんで、開いて閉じるだけでも上書き保存を聞かれるようになる
回避方法は、自動計算を切るぐらいしか無い。自動計算切るとこっちのほうが間違い増えるからオススメはしない
cell関数の代わりにvba使っても回避できる
0670名無しさん@そうだ選挙にいこう
垢版 |
2019/04/10(水) 08:26:19.52
ボタンにマクロを登録してあるのですが
そのボタンが使えないバージョンのExcelで
ボタンの代わりにマクロを実行する一番簡単な方法はなんですか?
0672名無しさん@そうだ選挙にいこう
垢版 |
2019/04/10(水) 14:55:15.52
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

数学関連の質問です。
点bを直角とした頂点abcの三角形があったとします。

A列には底辺abの長さ、B列には高さbcの長さの数値が入っているとします。
その際、C列に斜辺acの長さ、D列に斜辺の角度を表示させたいのですが
C列とD列の式はどうすれば良いでしょうか?

C列は今のところ =SQRT(A2^2+B2^2) で解を出していますが
もっとシンプルな方法はないでしょうか。

D列は全く分かりません。

よろしくお願いします。m(_ _)m
0675名無しさん@そうだ選挙にいこう
垢版 |
2019/04/10(水) 17:56:08.98
vlookupの範囲選択の指定で、欲しい答えの列を一番右にしないケースってある?
0678661
垢版 |
2019/04/10(水) 22:59:48.68
昨日特定のセルにシート名を入力で質問させてもらった者です。
調べたVBAをVisual Basic Editorの入力したいシートにコピーしたのですが、
まったく反応しません
どこが問題なのでしょうか?よろしくお願いいたします。
入力したコードはこれです

Sub A1セルにシート名を取得()
Range("A1").Value = ActiveSheet.Name
End Sub
0681名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 12:33:23.39
ここで質問する内容でなかったらごめんなさい。

エクセルファイルオープン時に、外部DBと連携してデータを取得する
動的エクセルファイルを作成しました。

このエクセルファイルを、VBSでオープンしたいと思っています。

手動でエクセルをオープンした際には、
バックグラウンドクエリが実行され、DBから情報を取得してくれるのですが、
VBSでオープンした際には何故かバックグラウンドクエリが実行されず
DBから情報を取得できません。

VBSの書き方の問題か、エクセル側の設定の問題か切り分けできず、
ここでご質問させていただきました。
もし分かればご教示いただけますと助かります。。。
0684名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 13:06:26.24
>>682-683
VBA、、、ありがとうございます。
あの、VBAでDBクエリを実行するようなコマンドってありますか。
0685名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 13:23:39.66
>>681
>>684

VBAにクエリデータを再取得するモジュールを追加し、
VBSでそのモジュールを実行するよう書き加えたら解決しました!

ActiveWorkbook.Connections.ODBCConnection.Refresh


ありがとうございました!
0686名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 15:29:33.13
vlookupなどの関数で他のブックを参照していますが
絶対参照になっていて場所が変わるとエラーになります。
カレントフォルダを相対参照するにはどうしたらいいんでしょうか?
0687名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 15:46:07.48
すいません、カレントじゃなかったです。

C:\user\xxx\xxx.xls
C:\user\yyy\yyy.xls
C:\user\zzz.xls

こんな場合で\userが変わってもリンクしたいです
0688名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 17:17:44.16
>>686
メインのブック、参照するブック、と分かれるとして
この2つは常に一緒のフォルダかなにかに入ってるの?
それとも参照するブックだけ移動する?
0690名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 18:49:09.57
EXCELって相対パスで入力しても保存すると絶対パスに書き換えられるの?
2019でそういう挙動になたけど、前からだっけ
だとしたら>>687、indirect使わないと無理かも
0691名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 19:21:20.29
失礼します。
データの集計で、空欄にアスタリスクいれてたら、ワイルドカードとして扱われて、置換できなくなりました
どうにか、0に置換する方法はありませんか
よろしくお願いいたします
0694名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 19:51:04.96
>>630です
http://imgur.com/8ghP7TR.png

画像のB27だけは手入力で、B28から下を自動で入力したくなりました
B列にロットナンバーを入力しきって最終出荷日を超えるとD31の様にエラーが出ます
もしD31にエラーが出た場合、B31をB30+1する事は可能でしょうか?
B31 = B30
D31 = NA()
B31 = B30 + 1
これを順番に計算できれば良いのですが…
0695687
垢版 |
2019/04/11(木) 20:34:33.93
ついでにwordの差し込み印刷でも外部ファイルは絶対パスになります
0697661
垢版 |
2019/04/11(木) 22:51:22.80
レスありがとうございます。
>>679
シートの名前を変更すると同時にそのシートの特定のセルを同じ名前にしたいと思っています。
今まではそのセルに
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]", CELL("filename",A1)))
を入れていました

>>680
すみませんイベントは確認してませんでした。

今日別のコードを標準モジュールに張り付けてみました

Function RSN()
RSN = ActiveSheet.Name
End Function

で対象のセルに=RSN()
と入力したらシート名を表示してくれました。

しかしシートをコピーしてシート名を変更しても変わってくれず
そのセルでエンターを押さないと変更してくれません。

シート名を変更すると瞬時に変更される方法があるのでしょうか?
素人相手で申し訳ありませんがよろしくお願いいたします。
0698名無しさん@そうだ選挙にいこう
垢版 |
2019/04/11(木) 23:52:49.37
VBAをマスターしたいけど難しいそう。。。

ここいる人でVBAをマスターして使いこなせるようになってる人はどれくらいの期間かかりました??

因みにプログラミングの知識はありません。
0699名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 00:12:38.01
>>697
>で対象のセルに=RSN()
>と入力したらシート名を表示してくれました。
>しかしシートをコピーしてシート名を変更しても変わってくれず
>そのセルでエンターを押さないと変更してくれません。
※最後はF2→enter

ユーザー定義関数の再計算のタイミング変だな
この後F9で再計算しても値が更新されない
この挙動は知らなかった

しかしこれ、なんらかの方法で揮発性関数にしたら結局cell()関数使うのと一緒になるような気がするぞ
0700661
垢版 |
2019/04/12(金) 00:47:46.78
>>699
レスありがとうございます。
やはりそうですか
きっかけが必要なんですね
なんとなくそんな感じがしてました。

例えばシート名を変更してそのシート内に何か変更があればというifをつければいいんでしょうか?
0701名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 01:37:53.94
>>700
>シート名を変更すると瞬時に変更される方法があるのでしょうか?
無い気がしてきた。多分、無い
ユーザー定義関数を使わずにイベントにすると色々な条件でマクロ起動できるが、「シート名を変えた時」がない
妥協でよければsheet1に以下を記述

Private Sub Worksheet_Activate() '発火条件 シートがアクティブ担った時
Cells(1, 1).Value = ActiveSheet.Name
End Sub

Private Sub Worksheet_Calculate() '発火条件 計算(再計算ではない)
Cells(1, 1).Value = ActiveSheet.Name
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range) '発火条件 セルの位置変更
Cells(1, 1).Value = ActiveSheet.Name
End Sub

あと、以下は失敗したこと
揮発性関数混ぜたらどうなるかと思ったが、揮発性関数だけ再計算された
ユーザー定義関数、なんかstatic臭い挙動
=rsn()&IF(1,NOW(),"")
0702661
垢版 |
2019/04/12(金) 08:23:58.37
>>701
夜分遅くに申し訳ありません
早速会社で試してみます
ありがとうございました
0704名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 09:05:56.93
>>697
> シート名を変更すると瞬時に変更される方法があるのでしょうか?
なんか負けた気がするけど…
Function RSN(Dummy As String) As String
RSN = ActiveSheet.Name
End Function
ってやってA1に
=RSN(CELL("filename",A1))
って入れれば変わる
とりあえずCELL関数を呼出してればいいみたい
0705名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 15:13:00.97
1
2カレー 4
3
4印刷 2
5ラーメン 8
6
7
8印刷 5

↑は例です。
VBAでカレーの下の印刷ボタンを押したらカレーから印刷までの行を印刷、ラーメンの下にある印刷ボタンを押したらラーメンから印刷までの行を印刷といったようにさせたいので
カレーの横にカレー用の印刷のある行、カレー用の印刷の横にカレーのある行を(VBAではなく)エクセルで自動的に出したいです。
ただカレーやラーメンといった名前や、間のセル数は日ごとに代わります。

Match関数を使って範囲を変数で指定できればできそうなんですが、行き詰っているのでやり方を教えてください。
0706名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 15:36:20.00
>>704
揮発性関数を引数として取れば何でも良いのか
=rsn(NOW())
ちなみに揮発性関数以外はNG
=rsn(sum(1))

で、この手法最大の問題は
そもそも>>661
>ブックを開いて何も変更していないのに閉じようとすると保存しますかと聞かれます。
この問題が再発して何の意味も無いという点

>>705
かなり変な設計だけど大丈夫?
やりたいことを言ってくれれば設計からやるけどな
とりあえずボタンがフォームかactivexか教えて欲しい
0707名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 15:54:40.09
>>706
ありがとうございます。
ボタンはSelectionChangeを使って印刷という文字列の入ったセルをクリックしたら、という感じにします
なんとか自分で作ってみたいので、お気持ちはありがたいのですがお知恵だけ拝借出来たらと思います。
0708名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 16:10:03.52
>>707
>ボタンはSelectionChangeを使って印刷という文字列の入ったセルをクリックしたら、
これの実装も難しいので、「ダブルクリックをしたセルに”印刷”と入っていたら」実行されるという風に変えてある
記述するのはthisworkbookな。sheetや標準モジュールに書いても動かんぞ

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
a = 1
If Target.Value = "印刷" Then
For i = Target.Row - 1 To 1 Step -1
If Cells(i, 1).Value <> "" Then
印刷開始行 = i
GoTo p
End If
If i = 1 Then '印刷の上になにもない時は終わる
Exit Sub
End If
Next
p:
ActiveWindow.View = xlPageBreakPreview '消しても良い。確認用
ActiveSheet.PageSetup.PrintArea = "$A$" & 印刷開始行 & ":$A$" & Target.Row
ActiveWindow.SelectedSheets.PrintOut '印刷
End If
End Sub
0709名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 16:34:47.89
>>708
わざわざ作っていただきありがとうございます
自分の知らないやり方がいっぱいあるので、勉強させていただきます
0710名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 19:27:21.55
2007です
キーボードの十字キーをおして選択しているセルの移動をしていたのですが
それが動かなくなり、シークバーの移動に変わってしまいました(エクセル再起動後も)
どうしたら戻せますか?
0711710
垢版 |
2019/04/12(金) 19:40:49.44
答えにたどり着きました
現在Scroll lockキーを探し中です
0714名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 22:04:23.57
すいません
EXCELに関する質問じゃないんですがよろしいでしょうか

画像(図面)に文字とか線とか入れるのにエクセルを使ってます。
まずエクセル開いて画像を挿入。そこからオートシェイプで線を書いたり文字を挿入したりしてます。
しかしこれだと○を書いたつもりが印刷すると歪んでたり多く線を引いたりするとすごく重くなります。
これと同じような作業をするのに何か便利なソフトはありますか?
スレ違いを承知でお伺いします。
0716名無しさん@そうだ選挙にいこう
垢版 |
2019/04/12(金) 22:41:48.72
>>714
・googleSpreadsheet
ずれるかどうか知らん

・gimp
>>715の言ってるソフトのフリーソフト。互換性は低いが0ふからファイル作るなら問題はない

・パワポ
テーブルはEXCELのデータコピペすればらくちん
0718661
垢版 |
2019/04/12(金) 23:53:16.18
>>701
ありがとうございます!
アクティブになった時を使わせてもらいました。
シート名さえ確認すればあとはほったらかしで次のシートに行けばいいだけなので、自然な感じで使えそうです!
本当に感謝しております

>>704
>>703
レスありがとうございます。
確かに瞬時に変わるので素晴らしいと思いましたが、やはり変更していないのに保存しますか?と聞いてくる問題が出てきますので、せっかく考えて頂いたのに残念ですが見送らさせてもらいます。
しかしこういうコードの使い方は覚えておいてまた他の事に活かす様に記憶しておきます。
皆さんありがとうございました。
0719名無しさん@そうだ選挙にいこう
垢版 |
2019/04/13(土) 02:58:40.39
質問です。よろしくお願いいたします。

ある名簿シートの、電話番号の列に、電話番号の数字以外に、
たまに、"(実家)"とか"(職場)"などの文字が入っている場合があります。
VBAで一行ずつ走査して、そういう数字以外が混じっていたら消去して数字だけにする、
ということをやりたいです。ただ、電話番号の最上位が0である場合が多いので、いちばん最初に
'(アポストロフィ)がついており、数字ではないといってもこのアポストロフィは残さないとまずいです。

dim tel as string, afterTel as string
Do
tel=sheets("名簿").cells(row,5)
afterTel = **** 'telから数字以外の文字を消去(でも先頭の ' は消しちゃだめよ) ← ★ここ
sheets("名簿").cells(row,5)=afterTel
row=row+1
loop

VBAで、この4行目をどういうコードを書けばいいのか、教えてください。
0723691
垢版 |
2019/04/13(土) 14:31:26.62
>>693
お礼遅くなって申し訳ありません
おかげさまで解決できました
ありがとうございます
0724名無しさん@そうだ選挙にいこう
垢版 |
2019/04/13(土) 16:47:33.56
A1~A7セルに=today(),=today()+1・・・と今日を起点に一日ずつずれた日を「〇月〇日」という形で表示し、
VBAで入力規則のリスト表示にして必要なところに表示していこうとしています
リストを作った先の書式を設定しないと日付が文字列に変換されてしまいますが、仕様上書式はいじりたくありません
ExcelでもVBAでも構いませんので、「〇月〇日」という日付の書式を「〇月〇日」という文字列に変えるとか、いい解決方法はありませんか?
0725名無しさん@そうだ選挙にいこう
垢版 |
2019/04/13(土) 17:04:41.98
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Googleスプレッドシート
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

グラフを挿入しようとしたら、画面右側に
グラフのカスタマイズのウィンドウは表示されるものの
「決定」のようなボタンアイコンが出て来ません。
どのようにしてグラフを挿入すれば良いのでしょうか。
0728名無しさん@そうだ選挙にいこう
垢版 |
2019/04/13(土) 17:55:37.95
>>726
ご名答。
表示→固定にしていて画面外に表示されていました。
ただ、グラフを表示させたい場所が行固定した行の上側に当たるところで
どうやっても固定行の下にしか配置できません。
上側に配置するにはどうすれば良いのでしょうか。
0729名無しさん@そうだ選挙にいこう
垢版 |
2019/04/13(土) 18:29:23.57
724ですが自己解決しました
ありがとうございます
0731名無しさん@そうだ選挙にいこう
垢版 |
2019/04/13(土) 19:55:22.02
【1 OSの種類         .】 Windows7・10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

【質問内容】フォームコントロールで作ったマクロを登録したボタンをキーボードで押したい

A列、B列、C列にそれぞれ必要事項を入力するとE列に文章が合成される数式を入れました。
その文章は最終的にブラウザ上で入力作業をするのですが、そのままE列の該当セルを
コピーすると改行が含まれてしまうため、D列に以下のマクロを登録したボタンを設置し、
それをクリックすれば改行なしのテキストがクリップボードにコピーされるようにしてあります。
----------------------------------------------------------------------
Sub 右のセルをコピー()

  Dim xClip
  Set xClip = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

  With xClip
    .SetText ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1).Value
    .PutInClipboard
  End With

  ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1).Select

End Sub
----------------------------------------------------------------------
このボタンをキーボードで押すことはできるでしょうか?D列には同じボタンが並んでいるため、
クイックアクセスバーにマクロを登録ではできないと思いますが、ほかになにか方法はあるでしょうか?
0733名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 00:16:22.42
最近エクセルのアイコンが変わりました?
先日新しいブックをつくったら、横長で白地の多いデザインになっていました
0737名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 08:21:22.47
昔から、書式が勝手に変わるのはエクセルの仕様。

その都度、やり直す。
0739名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 10:45:46.93
コピペではないです
例えば くもり を変換して絵文字で入力しようとすると
雲だけの絵文字&#9729;は書式は変わらないのに
雲に隠れた太陽&#9925;の絵文字の方はSegoe UI Symbolに勝手に変わるという状況です
2016の方はそういう現象は起きないです
0740名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 11:10:06.42
vba(プログラミング)初心者です
ユーザーフォームにページを作ってページ毎にテキストやリスト、チェックの内容をセルに突っ込むマクロを作っています

コマンドボタンクリック
range("a1").value=textbox1.value
range("a2").value=checkbox1.value
...
range("a10").value=listbox4.value
えんどさぶ

こんな感じで長ったらしく手打ちで書いているのですがもっと簡単に処理するテクニックなどありましたら教えて下さい
0741名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 11:41:45.48
731です
>>732
やはりだめですか。D列の押したいボタンがあるセルを選択した状態でマウスで
クリックではなくキーボード操作でなんとかならないかなと思ったんですが・・・

>>734
説明不足でした。文章自体に改行はなく、エクセルのセルをコピーした後ブラウザや
テキストエディタなどにペーストした際に入る文末の改行をなくしたい、という意味でした。
0742名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 12:13:15.33
>>739
MS IMEの原因?googleIMEではそもそも
>雲に隠れた太陽
これが出てこなかった

>>740
>ユーザーフォームにページを作って
ページってなんだ?
>もっと簡単に処理するテクニックなど
配列に入れて処理すればいいけど、多分対して変わらないと思う

Sub foo()
arr = Array("あ", "い", "う")
For i = 0 To UBound(arr)
Cells(i + 1, 1) = arr(i)
Next
End Sub
0744名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 12:46:55.12
iPadのExcelで入力した一覧を、同じiPadのWordに差し込み印刷ってできますか?
もちろんプリンタはAirPrintに対応しています。
0745名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 16:27:55.31
すみません,質問させてください。

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


例えば,
A1セルに100
B1セルに100
と数値が入っています。

他のある数値をA1の100からひき,A1が0になったらB1のセルからひく
ということはできますか。

例えば,ひく数が105だったとしたら,
A1は0になって,B1は105−100=5だけB1から引き,B1には95と表示される
というふうにしたいです。

わかりにくくてすみません。よろしくお願いします。
0747名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 17:06:29.77
>>746
ありがとうございます。

それだと,C1=98のときにD1=2になりませんか?
最初はA1の数値だけが減っていって,それが0になったら,B1(D1)が減っていくとしたいのですが…
0750名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 21:33:40.01
質問です
A2に数字を入力した時に5以下ならB2に何も入れずに、それ以上の数字ならB2に表と入力されると同時に、何も表示してなかったB1に裏と表示させる関数またはvbaなどありますか?
同じ行だけだと
=IF(A2<5,"","表")あたりで出来そうなのですが、上の行にも反映させるのが分かりません
ちなみに5以上が連続で続く事はありません
0753名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 22:56:47.72
>>751
早々にレス頂きありがとうございます。
自分の説明が不十分だったのですが、
行は何行もあって、しかも表(5以上)が来る行が偶数行だと限らないのでこの式ですとB3やB5に5以上が来た場合、裏になってしまう様な気がしますが…
0754750
垢版 |
2019/04/14(日) 23:00:31.81
>>752
説明不足ですみません
例えばB列に
2
6
7
と5以上が連続で来ることはないと
いう意味でした
0755750
垢版 |
2019/04/14(日) 23:40:10.54
>>754
>>753
BではなくAの間違いでした
すみません
0756名無しさん@そうだ選挙にいこう
垢版 |
2019/04/14(日) 23:52:35.41
>>754
B列と書いてるけどA列のことと読み取って
A列に5以上の数字が1つ以上あればB1の値が"裏"になれば良いの?

それとも、
A2の値が2の時、B1,2の値はブランク
(A2の値が5以上ならB1は"裏"、B2は"表")
その後にA3に6が入力された時、B3の値が"表"、B2の値が"裏"
その後にA4に仮に3が入力された時、B3,4の値がブランク
ということ?

書いててよく分からなくなってきた
0757750
垢版 |
2019/04/15(月) 00:01:07.94
>>756
説明不十分で申し訳ありません
BはAの間違いです

例えば
A列  B列
2
1   裏
6   表
1
4

の様な感じに出来ればと
0759750
垢版 |
2019/04/15(月) 01:18:11.84
>>758
はいその様な形です
本当に夜遅くまで申し訳ありません&#128166;
0761名無しさん@そうだ選挙にいこう
垢版 |
2019/04/15(月) 06:47:47.33
【1 OSの種類         .】 Windows7・10
【2 Excelのバージョン   】 Excel2010

A1に
シートXYZのD14の値が空欄なら空欄
シートXYZのD14の値が何かしたら文字が入ったらその文字を入力する計算式
教えてください


A1とD14は別シートです
0766750
垢版 |
2019/04/15(月) 12:29:08.86
>>760
ありがとうございました!
何度も申し訳ありませんでした。
本当に助かりました。
0768名無しさん@そうだ選挙にいこう
垢版 |
2019/04/15(月) 17:17:36.48
A B
櫻井 あ
松本 か
二宮 さ
櫻井 た
松本 な
二宮 は

のようなデータシートがあるとして、
別に用意した「櫻井」シートの特定のセルに「あ」が入力され印刷→「あ」が削除され「た」に書き換わり印刷
これを松本・二宮についても同じように行いたい場合どのような方法が考えられますでしょうか。
VBA使用可能です。
0771名無しさん@そうだ選挙にいこう
垢版 |
2019/04/15(月) 17:32:02.61
>>768
Sub Macro1()
Set データシート = Worksheets("データシート")
データシート.Activate '一応
最終行 = データシート.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To 最終行
シート名 = データシート.Cells(i, 1).Value
データ = データシート.Cells(i, 2).Value
Sheets(シート名).Cells(1, 1) = データ
Worksheets(シート名).Activate
ActiveWindow.SelectedSheets.PrintOut
Next
End Sub
0772750
垢版 |
2019/04/15(月) 17:34:50.24
>>760
何度もすみません
実際にこのまま入力してみたのですが、一行上の裏の表示には連動されなかったです。
Excelのバージョンか自分の入力間違い等でしょうか?
バージョンは2007です。
申し訳ありません
0774名無しさん@そうだ選挙にいこう
垢版 |
2019/04/15(月) 19:21:05.51
>>771
ありがとうございます。
>>771の方は理解でき、>>771の方だけを別ファイルで実験してみてうまく行ったのですが、>>770がよくわかりません・・
これは「櫻井」〜「二宮」の別シートを作るためのコードということですか?
要は事前に細かく作り込んだ「櫻井」シートを用意しておき、そこにはには一覧表の櫻井に対応するひらがなを入れ、同じく「松本」シートには一覧表の松本に対応するひらがなを入れ・・ということをやりたいわけです。
わかりにくくてすみません。
0775750
垢版 |
2019/04/15(月) 21:09:03.38
>>773
会社のエクセルでは表しか出なかったのですが
家でLibreofficeに入力すると出来ました!
もう一度会社で入力してみます。
申し訳ありません
0776750
垢版 |
2019/04/15(月) 23:34:27.60
>>773
何度もしつこく申し訳ありません
Libreofficeで試して気が付いたのですが、実際会社ではA列ではなくV列で、B列ではなくC列を使用して、数値も0.4を境にしています。
それでC列に
=IF(V1>0.4,"表",IF(V1>0.4,"裏",”))
と入力してV列に数値を入力すると、表しか出てきません。
列順が逆になるとこの関数を変えなくてはいけないしょうか?
0777名無しさん@そうだ選挙にいこう
垢版 |
2019/04/16(火) 00:39:02.84
>>771がある程度解決したのですが、
最終行を取得するに当たって関数のみが入った空白セルを除外するにはどういしたらいいでしょうか?

Sub Macro1()
Set シート1 = Worksheets("シート1")
シート1.Activate '一応
最終行 = シート1.Cells(Rows.Count, 11).End(xlUp).Row

For i = 1 To 最終行

データ = シート1.Cells(i, 11).Value
シート1.Cells(1, 1) = データ
シート1.Activate
ActiveWindow.SelectedSheets.Printout
Next
End Sub
0779750
垢版 |
2019/04/16(火) 03:38:48.73
>>778
間違えていました
お恥ずかしいかぎりです。
お手数をお掛けしまして申し訳ありません。
0780名無しさん@そうだ選挙にいこう
垢版 |
2019/04/16(火) 08:35:57.82
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
ワークブックA(xlsm)とワークブックB(xlsx)があり、Bの特定のシートのセルをAの末尾にワークシートを追加して位置を指定してペーストするコードを組みたいのですが。
条件は
・AとBはファイル名やパスが変わることがあるため、直接指定はできない。
・オートフィルターと可視セルコピーを使っているため配列の使用ができない。
・書式情報を保持するためにBを開いたままAに貼り付ける必要がある。
AからBを開いてコピーする部分まではできているので、変数宣言とペースト部分だけでもサンプルコードをみせて頂けたら。
0782名無しさん@そうだ選挙にいこう
垢版 |
2019/04/16(火) 18:17:56.21
エクセルでデータベースを作るとして、データ格納用のシートとデータを管理する(集計したり加工する?)シートを分けたいと考えています。
管理用シートには関数を使って複数の条件でしぼり込んだデータを表示したいと思っています。
その場合に、検索範囲を例えばA1:A300とするのとA:AとするのとではCPUにかかる負荷が違ってくるものと推察します。
似たような関数を組んだセルが60くらい並ぶ仕様を考えているので、かなりの負担がCPUにかかるのではないかと思っています。
ちなみに、A:A300と書いたのは、300くらいで5年分のデータの量になるので書きました。
5年経ったら、関数を書き換えてA:A600とかにしようかな、という心算です。
ただ、何年かごとに関数を書き換えるのも面倒ですし、できたら作ったときに完結しているものがいいなと思い、A:Aという書き方も考えましたが、やはり計算時間がかかりそうに思いまして、質問させていただいています。
オフセット関数というものを使うと、検索範囲の指定を自動化できると聞きましたが(よく分かっていませんが)、それだとA:Aと書くのと違うのでしょうか?
0785名無しさん@そうだ選挙にいこう
垢版 |
2019/04/16(火) 18:47:38.81
質問です

シート1のデータをシート2に自動的に抽出して表示したいです
条件に合う列のデータを自動的に。

今はフィルターとマクロでやってますが
それらを使わず関数でやることは可能でしょうか?

フィルター関数というのがあると聞いたのですが、社のオフラインパソコンでは
探しても見つかりませんでした
0787名無しさん@そうだ選挙にいこう
垢版 |
2019/04/16(火) 18:54:55.80
>>785
可能と言えば可能だが止めておいたほうが良い
死ぬほどめんどくさい

ABCDE列の内、ACDが条件に合致するとすると
作業用シートのA1、C1、D1に1、2、3と入れる。max()を使う
後はsmall()で取得していく
0790名無しさん@そうだ選挙にいこう
垢版 |
2019/04/17(水) 23:22:55.15
>>789
自動で都度計算されてしまうものだと思っていましたが、必要なときにだけ再計算して表示を更新するようにすることもできるんですね。
それは知りませんでした。
ありがとうございます。
調べてみます
0791名無しさん@そうだ選挙にいこう
垢版 |
2019/04/18(木) 00:50:35.20
Excelを用いて、ゲームのイベントの今までの傾向から次に来るイベントの種類や日程を予測したいです。
今までのデータを、イベント名、イベントの種類、イベントタイプ、開始日程、終了日程の
行を作って全て入力しました。ここから次にくるイベントの種類やタイプなどそれぞれの予測が出るようにしたいのですが、それができる関数やマクロはありますか?
ちなみにイベントの種類は4種類、タイプも4種類の中から選択という形で、毎回順番に出る訳ではありません。
もちろん予測なので外れても問題はないのですが何となく分かっているだけでもかなり違ってくるのでそういう方法があれば教えていただきたいです。
0794名無しさん@そうだ選挙にいこう
垢版 |
2019/04/18(木) 09:16:30.53
コンピューターによる予測というのは、まず人間が法則を発見して、それをプログラミングや関数に置き換えることによって可能になる物
法則がまったくわからない場合は、たとえばグラフを書くなり視覚化して目視で推測するぐらいしかない

その「法則を発見する」段階までコンピューターにやらせようというのが、今研究されてるAIの機能の一つで、まだ実現は遠い

余談になるけど、スマホアプリのイベントは中の人が前日や当日に急に決めることがけっこうあるので、予測するのは不可能に近い
0796名無しさん@そうだ選挙にいこう
垢版 |
2019/04/18(木) 09:42:31.55
>>791
年何回イベントが開かれてるかという平均や
グラフは作れるでしょ

イベントの種類ごとの年間件数
春夏秋冬で分けたときの数値もだせるし

テーブルつくってやれば昇順とか消したりとかで後は自分で数えるだけ
0800名無しさん@そうだ選挙にいこう
垢版 |
2019/04/18(木) 11:31:21.22
791です
皆さん回答ありがとうございます。
フィルタで目視の方法と最小二乗法を用いて予測したいと思います
縦軸開催回、横軸日付で近似曲線出したあとFORECAST関数使って出してみたらいけました!
他にも良い方法があれば教えていただきたいです。ありがとうございました!!
0801名無しさん@そうだ選挙にいこう
垢版 |
2019/04/18(木) 16:50:49.24
勉強不足で申し訳ないが教えて下さい。
Aというブックに「小麦、大豆、りんご」と入力されたセルを作り、Bというブックで参照させるときに
小麦
大豆
りんご
と改行させて表示させたいです。
よろしくお願いします。
0802名無しさん@そうだ選挙にいこう
垢版 |
2019/04/18(木) 16:52:16.94
SUBS TITUTEで「"、"」を「"&C HAR(10)&"」に置き換えて前後にもCONCATEN ATEで「"」付ければいけるかな?とにわか知識なりに色々試したけど上手くいきません。
申し訳ない!教えて下さい!
0805名無しさん@そうだ選挙にいこう
垢版 |
2019/04/18(木) 21:08:18.50
日本の年号変更と元年
ttp://support.office.com/ja-jp/article/c52091af-848d-481f-a861-26ae170f8dbd

書式設定のユーザー定義で元年を表示する
[<=43585][$-ja-JP]ggge"年"m"月"d"日";[>=43831]ggge"年"m"月"d"日";ggg"元年"m"月"d"日"

Text 関数で元年を表示する
[<=43585][$-ja-JP]ggge"年"m"月"d"日";[>=43831]ggge"年"m"月"d"日";ggg"元年"m"月"d"日"
0807名無しさん@そうだ選挙にいこう
垢版 |
2019/04/19(金) 21:02:11.40
レイアウト等が少し違うブックにデータを貼り付ける際に、VBAで事前にレイアウトを合わせる処理をしました。
その後コピーして貼り付けようとしたら
「この操作は複数の選択範囲には適用できません」
のようなメッセージがでて貼り付けができなかったんですが、同じ処理を手動でやると貼り付けできます。

VBAで処理した内容は
・連続した3列を削除 Columns("AA:AC").Delete
・実線の罫線を引く(元は点線) Range("A13:AE200").Borders.LineStyle = True
です。

コピーするセルにはセルの結合がありますが、結合する列数は揃えてあります。コピーする範囲は同じ行の連続したセルです。
貼り付けができなくなった原因ってなんでしょうか?
0810名無しさん@そうだ選挙にいこう
垢版 |
2019/04/19(金) 21:48:44.68
>>807,809
んじゃわからん
pasteの部分も重要
selection.pasteみたいにしてると多分おかしくなる

>・連続した3列を削除 Columns("AA:AC").Delete
ここでselectionが変になっているような気がする

>・実線の罫線を引く(元は点線) Range("A13:AE200").Borders.LineStyle = True
これは多分どうでもいい
0811名無しさん@そうだ選挙にいこう
垢版 |
2019/04/19(金) 22:19:26.30
>>810
コピペはVBAではなく手作業でした。同じブックのAAからAC列を手作業で削除するとペーストできて、VBAで削除するとペーストできない、という状態でした
0813名無しさん@そうだ選挙にいこう
垢版 |
2019/04/19(金) 22:43:37.00
>>812
コピーしたのはすべて文字列、範囲はA:AE列(7列、5列、3列等のセルの結合あり)で、飛ばした列はないので「複数の選択範囲」ではありません。列の非表示もありません。
0814名無しさん@そうだ選挙にいこう
垢版 |
2019/04/19(金) 23:22:14.03
B2〜B10のデータから条件に合ったセルのそれぞれのA列にある数値を合計してB1に表示するにはどうしたら良いでしょうか?
0816名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 02:45:05.72
残業の時間帯事にまとめたいんだけどいい関数ないですか?

誰がどの時間帯にどれだけの残業をしているか
時間帯を塗りつぶしで色分けして特定の範囲のその色を合計する関数はありますか?
0818名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 10:03:25.30
>>816
関数というより条件付き書式のカラースケールがいいんじゃないかな?
0823名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 16:17:06.18
以前、ゲームのイベント予測について質問をした者です
試行錯誤を重ねた結果、2行目にキャラの名前、3行目にそのキャラのイベントが予測される日のうち次回イベント開催日に最も近い日が出るようにしたのですが、それらの中から、次回イベント開催日に近い順にキャラ名が出るようにしたいです
何か良い方法があれば教えていただきたいです
0824名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 17:37:47.19
「クマさん」という名前のシートと「統計」という名前のシートがあり、「統計」シートの特定セルには「クマさん」シートの特定セルを指定した関数が入っています(「クマさん!〜」という指定)
この時に「クマさん」シートを削除して同じ名前の別の「クマさん」シートを追加しても関数がREF!になってしまうのですが、何がいけないのでしょうか?
0826名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 17:53:20.80
>>824
シートを削除した時点で#refエラーになっている。ちなみにrefはリファレンス、参照の意味でそれがエラーって事はドコ見ていいか分からんって内容のエラー

シートにはIDがあって、関数の=sheet1!a1のsheet1はそのIDを指定している
だから一回削除するとヒモ付が切れてしまう
0829名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 18:00:41.76
>>828
それはそうだけど、全体通して教えてくれればもう少し良いやり方を提示出来るかも知れない
そもそも消してから同じ名前でシート作りなおす理由が良く分からん
0832名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 18:43:04.80
>>829
統計シートは関数が変わらないから不動なんですけど、クマさんシートの内容については1月のクマさんの行動、2月のクマさんの活動〜っていう風に変わっていきます
なのでその都度1月分のクマさんシートを統計シートのあるブックにコピーして作業、2月になったら1月分を削除して2月分を同シートにコピーして作業〜ってのを毎月繰り返す感じです
0833名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 18:43:26.60
>>830
もうちょい日本語を読みやすくしてほしい・・・

1
2 山田 鈴木 渡辺
3 1/1  2/1  3/1

こういう表ってこと?
>次回イベント開催日に近い順にキャラ名が出る
それなら別にそのままでもなっているのでは
もし違っていたらブックを上げて欲しい。読むのが結構しんどい
0834名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 18:52:04.28
>>832
統計って一月分?
それなら統計シートにコピーせず、最初から「1月のクマさんの行動」側のブックにつけておいたらいいんじゃないの?
0835名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 19:13:55.27
>>833
そんな感じです!
ただ、例えば
1
2 山田  渡辺 鈴木
3 1/5  1/1  1/10
みたいに順番がバラバラで、1/4に近い順に表示したいって感じです。
0838名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 19:53:24.28
>>837
ありがとうございます!
近似値順の並べ替えの方法も教えていただけると嬉しいです
例えば
1 山田 1/5
2 鈴木 1/1
3 渡辺 1/10
のとき、1/7に近い順に並べる感じです。
0840名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 20:29:48.07
>>838
計算列を追加して1/7を基準に引き算をしてABSでプラスマイナスをなくしてその値が少ない順に並べかえるのが手っ取り早そう
0842名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 21:00:40.11
>>839さん、>>840さん
ありがとうございます
>>841
絶対値の近似値順が欲しいです
日付だけならできなくもないんですが名前の方を表示するのが出来ない状況です
0843名無しさん@そうだ選挙にいこう
垢版 |
2019/04/20(土) 23:07:50.64
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

初歩的な質問で申し訳ないのですが教えて頂きたい事があります

1年齢 2タバコ 3お酒 4パチンコ
25 ○ ○
28 ○
32 ○ ○
35 ○
22
24 ○

上記の様な表を作って、20代で○が一つでも付いている人数を求める場合、どの様な関数を使えばよろしいですか
COUNTIFSを使って、20代の人数は算出出来たのですが、その中で○が該当する人数の出し方がわかりません
恐れ入りますが回答頂けると有り難いです。
0845名無しさん@そうだ選挙にいこう
垢版 |
2019/04/21(日) 10:22:56.37
>>834
一月分です
行動ブックに関数入れた統計シートくっつけても同じことにならないですか?
特定の行動シートをくっつけていない統計シートのみのブックを作っておいて、それを毎月行動シートにコピーすればいいのか
0846sage
垢版 |
2019/04/21(日) 10:49:08.83
>>844
できました!ありがとうございます。
https://dotup.org/uploda/dotup.org1827200.xlsx.html
あとは各シートの近似値をすべて、前回の開催日以降かつ今回の開催予測日に近い値にしたいのですが難しいですかね…
0847名無しさん@そうだ選挙にいこう
垢版 |
2019/04/21(日) 21:23:42.51
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

初歩的な質問させてください

シフト表を作ってるのですが
4月  1日
田中 朝
山本 昼
佐藤 夜
山田 休

上記みたいな感じで、10人いて1日に朝2人、昼3人、夜1人以上がシフトに入ってればOK
入ってなければNGみたいな判定を入れて
シフト表を作った時点でシフト漏れを出さないようにしたいのですが
どうすればよいのでしょうか?
0849名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 11:39:34.22
>>848
ありがとうございます。
いろいろやってみましたが
複数条件の式の作り方がわかりませんでした。
=IF(COUNTA(C1:C11,"朝")=1,COUNTA(C1:C11,"昼")=2,COUNTA(C1:C11,"夜")=1,"OK","NG")
式が全然違うのでしょうけど、1つの式にまとめて作ることはできないのでしょうか?
0850名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 12:15:32.51
>>849
誤) =IF(COUNTA(C1:C11,"朝")=1,COUNTA(C1:C11,"昼")=2,COUNTA(C1:C11,"夜")=1,"OK","NG")
正) =IF(AND(COUNIFS(C1:C11,"=朝")>=2,COUNIFS(C1:C11,"=昼")>=3,COUNIFS(C1:C11,"=夜")>=1)=TRUE,"OK","NG")
かな。
0852名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 15:32:21.03
>>851
なんでも感でも聞くんじゃなくてもう少し数式読んだほうがいいぞ
counifsは多分countigsの間違い
=IF(AND(COUNTIFS(C1:C11,"=朝")>=2,COUNTIFS(C1:C11,"=昼")>=3,COUNTIFS(C1:C11,"=夜")>=1)=TRUE,"OK","NG")
0853名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 15:41:04.74
IF ISERRORでerrorの場合に0を表示させていますが、少し目障りです。
これを計算の邪魔にならないように文字列ではない
「空白」のようなものにするにはどうしたらいいですか?
0855名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 15:46:11.23
>>851,852
ありゃ、失礼。"T"が抜けてもうた。
コピペしたので3つとも・・・orz

=COUNTIFS(条件範囲1, 検索条件1, [条件範囲2, 検索条件2],…)

条件範囲に対して検索条件が1つだけだから、
=COUNTIF(条件範囲, 検索条件)
でもいいかと。
0856名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 15:58:21.28
>>852
>>855
ありがとうございます。
この式を入れたところ結果がFALSEで固定されてしまい
OK、NG表示がされませんでした。
なんでも聞くのも申し訳ないので調べてみます。
0860853
垢版 |
2019/04/22(月) 17:01:19.59
=IF(ISERROR(VLOOKUP($A1,$C1:$D4,2,FALSE)),"",VLOOKUP($A1,$C1:$D4,2,FALSE))

このとき
そもそもC1:C4に該当がない場合は表示されないのでOKですが
D1:D4に値がない場合、0が表示されるのです。
0861853
垢版 |
2019/04/22(月) 17:04:13.67
あ、すいません、OKじゃないです
表示されてなくても計算できないです(#value)
0862名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 17:09:35.87
>>860
うーん、結構めんどくさい処理にしようとしている
iferrorにして該当無しと空白0にし、0をユーザー書式で非表示ってのはどうだろう。これなら計算もエラーにならない
=IfERROR(VLOOKUP($A1,$C1:$D4,2,0),0)

ユーザー書式に以下を入れる
0;-0;;@
0863853
垢版 |
2019/04/22(月) 17:31:39.08
>>862
ありがとうございます。
なるほどシンプルですね・・

ちなみにそのユーザ書式はどういう意味になるんでしょうか?
0866名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 18:14:55.47
>>863
#,##0;-#,##0;""
0869名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 19:41:38.97
>>868
どこまでだったかはっきり覚えてはいませんが、結合はAE列以降もありました。削除したAA:AC列は結合でひとつのセルになっていて、両サイド共結合セルでした。
0870名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 19:56:20.53
コピーと貼り付けはそれぞれ範囲選択をし直してる?
貼り付け先の結合を全部解除しておいて貼り付けならうまくいく?
0871名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 19:59:36.71
>>867
表示の分割かウィンドウ枠の固定かグループ化かその辺りかも知れない
なんかあれでエラーになった事があるようなないような

それでも無理なら結合セル解除してから試してみてはどうかな
最後に結合する
セル結合は本当に害悪
0872名無しさん@そうだ選挙にいこう
垢版 |
2019/04/22(月) 20:07:50.28
>>870
コピー時の範囲選択はVBAで選んでおいても後から手動で選び直しても駄目でした。貼り付けは結合済みは駄目なので、新規のシートにも貼り付けてみましたがやはり駄目でした。

>>871
表示の分割、ウィンドウ枠の固定はなかったと思います。グループ化は確認していませんが、グループ化したときに上部にでる四角はなかったと思うので、多分ないです。

セルの結合ほんとにやっかいですよね
0874名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 00:46:28.89
【1 OSの種類         .】 Windows 10
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

3変数x,y,zの相関関係の式を求めたいです。
xとyからzが出るようなのですがその計算式が分からないので、データから予測したいです。
x,y,zのデータが30回分ほどあるのですがそこから予測するのは可能でしょうか?
0876sage
垢版 |
2019/04/23(火) 01:15:33.73
>>875
多分だけど>>874は相関係数じゃなく計算式が求めたいんじゃない?
データから3変数の計算式求めるなんてできるか知らんが
0878名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 18:15:13.20
エクセルのシフト表があるのですが、
シートに時間を入力して別シートに該当する時間のセル部分に色がつく
といったファイルがありました。
時間の入力は1つのセルに出勤時間、1つのセルに退勤時間のみ
|_5/1_| (例)
|10|18|

それが別シートの1日のシフト表に反映されて 10時〜18時のセルに色がつくようなものです。

時間|9:30|10:00|10:30|11:00|・・・・|18:00|18:30|
Aサン|____|ここから18:00までセルに色がつく
色がつくだけでセルに計算式は入っておりません。
条件付き書式とかなのでしょうか・・?
もしお分かりの方いましたらよろしくお願いします。
0879名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 18:22:20.63
>>878
そのとおり、条件式だと思う。
条件式はなにも、自セルだけしか条件セルに指定できない訳ではないから。

ただし、一度作るとちょっとレイアウト変えようとすると、
設定し直しでメンドい。
0880名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 19:23:00.65
横軸に月日がある予定表で
ある日に作業Aと入力したら何日後に作業Bなどの連続する体系を設定した通りに自動で入力するにはどうしたらいいでしょうか?
0881名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 19:36:07.98
>>880
ちょっとざっくりしすぎかな
祝日の扱いとか結構細かいところが大変だと思う
「EXCEL ガントチャート」
「EXCEL ガントチャート 工程表」
などで検索すればそれっぽいのは出てくると思う
0882名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 21:33:50.34
>>880
ちょうど俺もグラフでガンチャート出来ないかなと思って、
考えていたところ。

たとえばこんなの。
http://www4.synapse.ne.jp/yone/excel2013/excel2013_graph_ganttchart.html

"始期"と"終期"が元データだとしたら、
"終期"の代わりに"期間"を引き算で作って、
"始期"と"期間"の積み重ねグラフにする
というのがミソかと。

日付形式の"yyyy/mm/dd"だと、
素直に横棒積み重ねグラフの「元」が自動生成されるようだけど(横軸が日付軸)、
"yyyy/mm/dd h:mm"の時間軸だと、自動生成にクセがあるのか、
ちょっと工夫しないと上手くいかないみたい。

最初に"時間帯"と"始期"の列だけ範囲設定して、
後から手動で"期間"の系列を追加したら、
こんな感じで出来た。
https://i.imgur.com/fDMf7Gf.png

土日・祝日は、A、B、C系列に加えて
"休日"系列を作るか?
始期、期間、始期、期間・・・の積み重ね計算が大変になりそう。

あと、グラフのX軸の表示範囲(集計期間)を設定するには
いちいちx軸の最大/最小値を設定しなければならないので、
その手間を省くには、VBA使うしかないような気がする。
(そんなに難しくはないけど)
0883名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 22:13:06.40
>>881,882
どうも
ガントチャートを色々検索しては見たものの
自分の欲しいものとは少し違っているようで近いものが見当たりません
当方のイメージとしては
・10種ほどの工程のあるラインが20ほど独立して有る
・ガントチャートのように工程が全て縦に展開だと全体が見通せないので1ラインごとに各行程をを1行でまとめて表したい
・条件付き書式の色分けだけでなく文字列や数値も自動入力したい
・数値は日付ごとに集計したい

のような事をしたいと思います
0884名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 22:19:32.01
>>883
第一印象として、頓挫しそうだぁ・・・

どういう物が欲しいか、
EXCELにべた書きで作ってみてはどうかな
条件付き書式や数式使わないで
そうすれば暇人が作ってくれるかも知れない
来れないかも知れない
0887名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 23:13:57.63
やはり簡単に見つからないと言うことは要望が特殊なんですね
そもそもガントチャートじゃ無いようですし
今は部分ベタ打ちでやってるので全自動化したかったんですが
あれもこれもと入れてたら他人にはほぼ理解不能なものになってます
0891名無しさん@そうだ選挙にいこう
垢版 |
2019/04/23(火) 23:59:22.38
excelからIE操作をVBAでやることを考えています
特定のページをクリックで開く→特定の入力欄に数字を入力する→日付を30 4 23のような形で入れる→クリックする
のようなことを何回か繰り返すのですが、この場合マクロの記録のような形で記録することはできますか?
0894名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 00:21:49.80
>>893
ある画面からクリックで遷移×5回→3つのワードボックスに30 4 24のような形で当日の日付を入力→クリックで遷移×3 くらいの自動化をしたいのですが、難易度高めですかね・・
0896名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 00:39:51.14
>>894
webの勉強も必要になるので、難易度はかなり高い
ページによっても必要なコードも変わるから、コピペもあまり通用しない
ページを教えてもらえれば書いてみる

別の方法として
・キーボードマクロ。次善に設定したキーボード操作をしてくれる。ずれると悲惨なことになるが、vbaよりは大分ラク。kmmacroやuwscなどが有名
・chrome拡張機能のキーボードマクロ。かなり色々出来るみたいだけど使ったこと無い。別スレで聞いても良いかもな
0897名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 00:42:27.10
>>892
他にも数十分単位とかも出来る
このガントチャートは開始と終了を手入力するタイプだけど
生産数と生産人数と生産性を手入力して(元データを引っ張ってきてもOK)、開始と終了を自動入力にするタイプも出来るけど
どんなフォーマットがいいのかな
0898名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 00:51:18.60
>>896
やっぱり高難度ですかあ
とりあえず必要な過程を完全に整理しつつ、キーボードマクロなるもの使ってみてダメそうならまたお伺いしにきますありがとうございます
0899名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 00:57:32.23
>>897
ありがとうございます
最初考えていたのは工程表他を別の表から参照して
ラインのチャートは1行で重ねて表記するものでした
工程の数値の単位も1種類ではないなど複雑なので自力ではどうにもならなくて
ガント形式でも目的は果たせるかなと思い直してます
入力は開始終了が自動の方がいいです
0900名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 01:21:31.36
大量の日本語の住所を、英語に変換する方法教えてください
0901名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 01:46:27.72
別のブックにあるコードと照合して無いコードがあれば「A」と表示させる関数ありますか?
他ブックなのでcountifの様な他ブックを開いてないと更新されない特殊な関数は無しでお願いします
因みにマクロは組めないので関数だけで出来る方法があれば教えて下さい
sumifならsumとifに分ければ出来るようですが、同じことをcountifでもやりたいです
0902名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 07:49:42.18
>>900
手順としては

(1) 県、町、番地に分割
(2) フリガナ(読み方)のデータを取得
(3) ローマ字に変換

(1)と(2)は、最初からデータがそうなってなければ、自動でやるのはかなり大変
ざっくり変換したあと、手作業の修正が必要になる
0903名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 08:27:24.42
「x月集計」というブックが、別の「x月レコード」というブックを参照していて
x月集計をy月集計など順次変えて別名保存していくとします。
この場合、関数で自動的にy月レコードを参照するようにするに出来ますか?
0905名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 12:28:53.59
Sub sample()

Dim objIE As InternetExplorer


Call ieView(objIE, "開きたいページのurl")
end sub

これで実行するとsub又はfunctionが定義されてないって出るんだけどどこがおかしい?
0906名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 12:36:49.87
>>904
何とか自己解決しました
別のブックの値をsumなど使って引っ張ってくる程度なら別のブックを閉じていても更新されますよね
でもsumifやvlookupのような一部の関数を使うと別のブックを開かないと更新されないのです
それでもsumifの場合はsumとifに分けて数式を組むことで問題は解消できます
0908名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 15:21:55.86
>>907素人で申し訳ないんですがわからない・・
ググって出てくるようなページでそのまま使えそうなコード乗ってたので試してみたんですが、やっぱり同じようなことになります
https://samuraishockdo.info/ja/webmagazine/code/excel-vba-ie-ctl

sub 〜
For Each link In objIE.document.Links
If link.Text = "あああ" Then
link.Click
End If
Next link
End Sub
0909名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 15:58:56.44
>>908
参照設定してるかい?ie操作系を書いてるサイトは参照設定の記述を省いてることが多いよ

>>907が言ってるのは
sub ieview
ほにゃらら
end sub
っというのに値を渡そうとしてるけど渡し先を作ってないんじゃない?ということだよ
0910名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 18:32:54.71
>>909
参照設定はできてました
サブルーチンの話もなんとなくわかりました
callを使うならやりたい動作のサブルーチンプロシージャを作っておいてそれをcallで動かすということですかね
やりたいことは開いているページの中から特定の文字列のリンクを探してクリックor特定のラジオボタンをクリックする動作の繰り返しなので、どうしてもサブルーチンを使うなら、
ページ1でのクリックをサブルーチン1
ページ2でのクリックをサブルーチン2…という風に
したうえでcallすると。

ちなみに昨日>>896でお世話になったものです、フリーソフトの導入が不可能だったので再び戻ってきました
操作したいページは普通のWebページではなく、IE上で動いてる特殊システム(って表現でいいのかな)です
ソースの表示はできたので見る人が見たら実現できるのでしょうが・・
0911名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 21:43:59.76
【1 OSの種類         .】 Windows 10
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A列に語群が並んでいて、B列に短いテキストが並んでいるとして、
B列の文章の中に1つでもA列の単語が1つでもヒットすればC列に〇を表示させたいのですがどうすれば良いでしょうか?

【イメージ】
豚肉  にんじんと卵と油
牛肉  鶏肉とひじきと味噌   〇
鶏肉  大葉と魚の煮つけ   〇
魚    麻婆豆腐
     焼魚定食        〇
     ブロッコリーのサラダ
0912名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 21:46:36.37
>>910
恐らくやろうとしてる事はgoogleでテキストボックスに入力して検索ボタンを押す、とか
ヤフオクでテキストボックスに入力して検索する、という動きに近そうだからサンプルコード沢山あると思う
0914名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 22:48:08.76
>>903
今のファイル名から"○月"部分だけ切り出して○月レコード.xlsxのSheet1のA1を参照する

=INDIRECT("["&SUBSTITUTE(MID(CELL("filename"),FIND("[",CELL("filename"))+1,
FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1),"集計.xlsx","")&"レコード.xlsx]Sheet1!A1")

文字が長過ぎエラーが出るから改行してるけど実際に使うときには改行しない
0918名無しさん@そうだ選挙にいこう
垢版 |
2019/04/24(水) 23:26:59.30
>>917
ありがとうございます 関数まではネットで検索して解決出来そうですがマクロまでいくとそうはいかなさそうなので学校に行こうかと思っています。
0920名無しさん@そうだ選挙にいこう
垢版 |
2019/04/25(木) 00:00:24.07
>>919
はい、業務で使ってます。今三十半ばのオッさんですが、4年前に管理系の職種に転職してExcel使いまくりの仕事についてます。前職はsum使えたら神扱いされ天狗になってたんで今は自分のExcelスキルの無さに唖然としてます。。。少しずつスキル上げてくしかないですね。
0922名無しさん@そうだ選挙にいこう
垢版 |
2019/04/25(木) 00:25:38.04
>>920
毎日触ることだね
あと、調べ物する時はMSDNを見ること

例えばsumはこういう仕様になっている
https://support.office.com/ja-jp/article/sum-%E9%96%A2%E6%95%B0-043e1c7d-7726-4e80-8f32-07b23e057f89

全ての関数には一度目を通しておくと良い
https://support.office.com/ja-jp/article/excel-%E9%96%A2%E6%95%B0-%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%99%E3%83%83%E3%83%88%E9%A0%86-b3944572-255d-4efb-bb96-c6d90033e188
0923名無しさん@そうだ選挙にいこう
垢版 |
2019/04/25(木) 00:44:38.93
>>922
ありがとうございます。
毎日触れてというか触れないと仕事にならないので頑張ります。
あと事務系の人はExcelから逃れることはほぼ無理だと思います。Excelの汎用性の高さを考えると事務系の職種の人間はExcelのスキルを上げることが最も自分を助ける術ではないかと思います。頑張りましょう。
0927名無しさん@そうだ選挙にいこう
垢版 |
2019/04/25(木) 22:39:05.63
>>916
私は今それの繰り返し
周りにマクロまで出来るのはいないから
マクロでマクロを書き換えるとかまでは来たわ
まだファイル操作とかは苦手
ひとつのことをやるのにいろいろな方法があってどれがいいのか選ぶのも苦手
エクセル使い始めて4ヶ月経ったけどエキスパートpart1までは合格したよ
0929名無しさん@そうだ選挙にいこう
垢版 |
2019/04/25(木) 23:39:31.29
>>927
やるのに選択肢は複数あるとき困るわ
あるだけで、最適かがわからないから
0932名無しさん@そうだ選挙にいこう
垢版 |
2019/04/26(金) 09:12:46.95
【1 OSの種類    】 Windows7
【2 Excelのバージョン】 Excel2016
【3 VBAが使えるか  】 いいえ
【4 VBAでの回答の可否】 否

Excelの表示方法を標準モードからページレイアウトモードにしたとき、ホーム画面でフォントや大きさを変更しようとしても、
どういう文字・大きさになるかのプレビューができません。標準モードならそれができるのですが…

2016では標準モードでしかフォントのプレビューはできないのでしょうか?
0933名無しさん@そうだ選挙にいこう
垢版 |
2019/04/26(金) 09:48:12.12
>>928
ドキドキしながら受けたけど満点だったよ
20分で終わったからどっかに問題がまだあるんじゃないかと探しまくったし見直しもし過ぎたw
スペシャリストは960点超え
エキスパートは初めての模試は38%だったからさ
問題レベルに結構差があるよね
0934名無しさん@そうだ選挙にいこう
垢版 |
2019/04/26(金) 09:55:45.19
>>930
勉強というより好きなものを1日2時間くらい作ってる
最近は頼まれたイベント起きると画像を貼る系が多いかな
申請書に判子の画像貼るとかを理由表示したりブランク入力だったら消すとか条件絡めながら
理由を使ってる人が書き換えたらマクロまで書き換えるようにしてみた
0937名無しさん@そうだ選挙にいこう
垢版 |
2019/04/26(金) 18:09:03.72
【1 OSの種類    】 Windows10
【2 Excelのバージョン】 Excel2013
【3 VBAが使えるか  】 いいえ
【4 VBAでの回答の可否】 否

令和対応のパッチ出てます?
0939名無しさん@そうだ選挙にいこう
垢版 |
2019/04/26(金) 21:59:55.36
【1 OSの種類    】 Windows7
【2 Excelのバージョン】 Excel2016
【3 VBAが使えるか  】 はい
【4 VBAでの回答の可否】 可

VBAでの図の配置についての質問です。
データがA-C列に、画像がE列を上端・左端として1ページにつき1枚入っています(画像はすべて同じものです)。
これを行の高さを18→25に変更します。当然改ページ位置がずれますので、画像も改ページの位置に
あわせたいのですが、「画像の位置を改ページ直下」というようなことはできるでしょうか?
なお、1行目はタイトル行に設定してあります。

今のところ行の高さを25にすると24行で改ページが入るので、
Range("E2").Activate
For Each Shape In ActiveSheet.Shapes
Shape.Select
Selection.ShapeRange.Top = ActiveCell.Top
Selection.ShapeRange.Left = ActiveCell.Left
ActiveCell.Offset(24, 0).Activate
Next Shape
というようにしているのですが、ブックが大量にあり、すべてが24行で改ページが入るかどうかが
わからないので、E列の改ページ直下に配置できればなと思っています。

また、行の高さを変えることでページ数が増えることもあるのですが、そうすると増えたページには
画像がありません。画像はすべて同じものなので、コピーすればいいのですが、ページ内に画像が
無い場合はコピーして配置、というようなことはできるでしょうか?
0941名無しさん@そうだ選挙にいこう
垢版 |
2019/04/27(土) 00:53:19.71
>>938
今の時点で近日公開予定って、アウトだなw
てっきり第3週の水曜日に月例パッチで対応してくれるもんだと思っていたが、それは無かった(^^;
ぎりぎり26日まで待ってたがそれでも対応しなかった(# ゚Д゚)

とれるかどうかはともかく、国内は10連休だよな
次に出社したとき対応できませんじゃ仕事にならない

すでに見積有効期限とか、納期とか、契約期限とか、新元号に対応してないと困りまくりだよね
なので、26日現在、自社から発行する書類は元号やめて西暦にしたわ
どうしても元号じゃなきゃならないものだけ、随時対応していくつもり
にしても、ちゃんと動くか確認するため5/1〜5/7のお休み中に出社して動作確認はしなきゃだが( ;∀;)
0943名無しさん@そうだ選挙にいこう
垢版 |
2019/04/27(土) 01:17:58.62
>>941
そりゃあまだ変わってないからさ
不謹慎だが、今日突然天皇陛下崩御されるとずれるからな
皇太子と一緒に無くなったら令和すらならないかも知れん
0944名無しさん@そうだ選挙にいこう
垢版 |
2019/04/27(土) 01:32:27.56
>>939
マクロの記録を仕えばok

表示?改ページプレビュー
で改ページを変更した時の動作を記録する
例えば2ページ目をA70セルで区切った場合はこんな感じ
Set ActiveSheet.HPageBreaks(2).Location = Range("A70")
後はE71に画像をコピーなりなんなりすれば行けると思う

ただ注意点として、エクセルは印刷がしょっちゅうずれるので
ギリギリで調整してしまうと別のPCで開いたときにページが分割されるって事になりかねないので、
2,3行は余裕を持っておくと良いよ
0945941
垢版 |
2019/04/27(土) 02:28:24.49
>>943
その可能性考えたら、自社から発行する書類はすべて西暦ベースにするべきでしょうねw
今回は予めわかっていたにもかかわらず・・・この対応なので

自分が入社したのは平成元年4月なので、いままで元号が変わったこともなく、
変わったことに対して自分が対処することもなかったのですが、なぜか今は自分が対応しなきゃな
立場で、何でやねんという思いがいっぱいですw

ま、一番楽なのが西暦に変更なんだなw
あ〜、でも取引先にはエビデンスがどうとか言われる可能性が高い( ;∀;)
0946名無しさん@そうだ選挙にいこう
垢版 |
2019/04/27(土) 02:32:00.87
>>945
業務上は、西暦に変更することが間違いなく正しいと思う
まずは取引先に言ってみたらいいのに
俺なら絶対に言うわ。
いつ起こるかもわからんことなのに、アホらしすぎる
0954名無しさん@そうだ選挙にいこう
垢版 |
2019/04/27(土) 09:24:29.14
↑2021年以降はすべて令和3年表示になるので注意 令和4年以降も表示したい場合は自分で書式を追加しないといけない
それと、条件付き書式なので表で多用すると書式が増殖して動作が重くなるかもしれない。適用先を単独セルじゃなく範囲にするなど自己管理が必要
0955名無しさん@そうだ選挙にいこう
垢版 |
2019/04/28(日) 10:10:28.06
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに背景色(青・黄・赤)がついています。
それぞれの色がついたセルの2行下の部分,つまりワンセットの3列目に数値が表示されています。
この数値を各背景色ごとに合計したいのです。

よろしくお願いいたします。
0956名無しさん@そうだ選挙にいこう
垢版 |
2019/04/28(日) 10:11:38.86
誤記があったため,再度書き込みます。

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

範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに背景色(青・黄・赤)がついています。
それぞれの色がついたセルの2行下の部分,つまりワンセットの3行目に数値が表示されています。
この数値を各背景色ごとに合計したいのです。

よろしくお願いいたします。
0959名無しさん@そうだ選挙にいこう
垢版 |
2019/04/28(日) 16:16:31.63
>>944
ありがとうございます、939です。

行の高さの変更と画像の位置修正を同時にVBAでやっているため、改ページの位置は
マクロ動作時に知りたいです。

その後いろいろと調べて現在下記のような状態なのですが、これだとE5が選択されるだけで
画像の位置が変わりません。どこがおかしいかわかる方いますか?

Cells(2, 5).Activate

For I = 1 To ActiveSheet.Shapes.Count
For J = 2 To ActiveSheet.HPageBreaks.Count

ActiveSheet.Shapes(I).Select
Selection.ShapeRange.Top = ActiveCell.Top
Selection.ShapeRange.Left = ActiveCell.Left

Cells(ActiveSheet.HPageBreaks(J).Location.Row, 5).Activate

Next
Next
0960名無しさん@そうだ選挙にいこう
垢版 |
2019/04/28(日) 19:41:49.18
>>958
わかりました。やっぱりそうなんですね。では,質問をし直します。

範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに数値(1.2.3…)が表示されています。
それぞれの数値のセルの2行下の部分,つまりワンセットの3行目にも別の数値が表示されています。
この数値をワンセットの1行目の数値ごとに合計したいのです。

1,2,3,3,2,4
○,■,■,△,■,▲
5,6,3,5,4,2

1行目が1であるセットの2行下の合計→5
1行目が2であるセットの2行下の合計→6+4=10
1行目が3であるセットの2行下の合計→3+5=8
1行目が1,2,3でないセットについては集計不要

としたいのです。よろしくお願いいたします。

また,今回の件でやっかいなのは,このファイルが別のところから週1のペースで配布されるため,ファイルにあらかじめ表や数式を埋め込めないのです。
よって,マクロをコピペしたほうが手間が少ないので,マクロでの解決の方がありがたいです。(マクロにパスワードなどは設定されていません。)
配信されたファイルに,自分で解決マクロをコピペし,そのファイルは自分の手元のみに残り,誰かに使わせることはない。ということです。
0961名無しさん@そうだ選挙にいこう
垢版 |
2019/04/28(日) 21:27:52.61
>>959
こんな感じ?
ただこのマクロ、ページと画像のindexが合ってる保証がない
要は2P目の画像を最初に作ったあとに1P目の画像を作った場合、このマクロを走らせると入れ替わってしまう
そこだけ目視にするか、
IDが順番どおり並んでるか確認するマクロを別途作るかだな

Sub foo()
基準列 = 5 'E列
For ページ = 1 To ActiveSheet.HPageBreaks.Count + 1 'ページを基準とする。余計ややこしかったらすまん
'移動
If ページ = 1 Then
Cells(2, 基準列).Activate
Else
Cells(ActiveSheet.HPageBreaks(ページ - 1).Location.Row + 1, 5).Activate
End If
ActiveSheet.Shapes(ページ).Select
Selection.ShapeRange.Top = ActiveCell.Top
Selection.ShapeRange.Left = ActiveCell.Left
Next
End Sub
0964名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 00:31:45.41
>>961
これでいけそうな感じです、ありがとうございます
画像のindexについてはすべて同じ画像なので問題ないです

ページが増えて画像が足りなくなる場合に手動でコピー以外に方法がないか
もう少し考えて見ます
0965名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 01:07:29.85
>>964
同じ画像を使うなら、カメラ機能ってのがある。今は図のリンク貼り付け、って言うんだっけな
もしよかったら試してみて、画像は一個だけで済むので軽くなる
ただ、動作は重くなるかも知れない。

それか、行のヘッダを使っても画像は一枚で済むと思う。ただ印刷用の調整はしづらく成る
0966名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 01:49:35.05
>>965
すでにデータと画像が入力済みのブックを修正しているのですが、データが3ページなら
画像も3ページまで1枚ずつで3枚(同じ画像が3枚)、4ページなら4枚、となっていて、
それの行の高さを高くするために画像が足りなくなる場合がある、という状態です。

画像が足りない場合のコピーについては以下で行けそうです
Sub copy()

Rows.RowHeight = 25 '先に高さを変えてページ数を確定(現状は18)

Dim 頁数 As Integer
Dim 画像数 As Integer

頁数 = ActiveSheet.HPageBreaks.Count
画像数 = ActiveSheet.Shapes.Count

For N = 0 To 頁数 - 画像数 '足りない分の画像を補充
ActiveSheet.Shapes(1).copy
ActiveSheet.Paste

Next N

Call foo

End Sub

961で教えていただいたプロシージャ(foo)の上部にこれをそのまま追加したら
Cells(ActiveSheet.HPageBreaks(ページ - 1).Location.Row, 5).Activate
の部分が「インデックスが有効範囲にありません」とエラーになってしまうので
Callで呼び出してみたらうまくいきました
0967名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 02:03:52.07
>>962-963
ありがとうございます。
作っていただいたマクロを拝見し,基本的な構造がわかりました。
それを実情に合わせるのに,こんな時間までかかってしまいました。
私のマクロのスキルはそんな程度です。
これで今週からずいぶん楽ができそうです。
本当にありがとうございました。
0968名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 11:07:52.20
VBAってどうやって勉強すればいいの?
パソコン教室?専門学校?
0970名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 13:33:14.17
IE上のページで2時間毎に自動ログアウトされるのが鬱陶しいのです
最後のページ操作から2時間してから操作しそうとする(何かしらのリンクをクリックする)とパスワード入力画面が出る仕様ですが何かないでしょうか
0971名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 14:18:31.31
誤爆かなw
0974名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 16:15:33.04
>970
vbaにタイマーないからめんどくさいな
セッションを保持したいなら、jsか何かで裏で開くとかやってみると行けるかも
0978名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 21:06:06.56
VBAって所詮BASICだし本を何冊か読んで順番にやれば、仕事で使う簡単なシステムを作る程度なら独学でなんとかなったな
アルゴリズムを理解できるかどうかだと思う
0981名無しさん@そうだ選挙にいこう
垢版 |
2019/04/29(月) 22:56:41.64
vbaは標準モジュール、シートモジュールが恐ろしくとっつきにくい
いきなりスコープを覚えにゃならん
標準モジュールだけにしとけば良かったのに
0983名無しさん@そうだ選挙にいこう
垢版 |
2019/04/30(火) 01:55:08.62
>>970
板違いになるがhtmlヘッダーのmetaタグでrefreshで自動更新すれば?
0986名無しさん@そうだ選挙にいこう
垢版 |
2019/04/30(火) 06:43:27.99
エクセルのセルからVBAを呼ぶことは出来るのでしょうか?
例えば"A1"のセルに CALL "なんたら"ってサブルーチンで
計算させた値を返すようなことはできるのでしょうか?
0993名無しさん@そうだ選挙にいこう
垢版 |
2019/05/01(水) 08:14:04.58
エクセル2010 平成バッチを当ててるけど、令和になりません。

=DATESTRING(TODAY()) → 平成31年5月1日 になります。

残念。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 75日 16時間 43分 13秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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