Excel総合相談所 134
レス数が1000を超えています。これ以上書き込みはできません。
▼━質問テンプレ (出来れば使ってね) ━━━
【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 前スレが終わって未解決の質問は、もう一度最初から質問しなおした方がいいよ 前スレでの質問を再度書きます
【1 OSの種類 】 Windows7
【2 Excelのバージョン】 Excel2016
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
A B C
1 名前 性別
1 (空欄)
1 誕生日
2 名前 (空欄)
2 住所 方書
2 (空欄)
2 身長 体重
3...
のようになってるものを、左端の番号毎に一列にする方法はありますか
身長体重の行だけは両方空欄なら、行自体が無いというものになってます
追記:1番号につき最大4行、データ項目は最大7です >>5
横並びにした時、空欄は詰めるのか、セルを空けるのかどっち? >>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,"") 数式で横列に下行のデータを反映
ドラッグ
値貼付け、不要となった行の掃除
ですね
やってみるとわかる(気がしてる)のですが
自分では思いつきません、ありがとうございました 【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のプロシージャ名のところが
黄色くなり、「ユーザー定義型は定義されていません」と出てきてしまいます。
引数を指定すると出てくるようなんですが、何がダメなのでしょうか? 引数を省略すると
「引数は省略できません」
というエラーメッセージ
Public Sub jikko()
Call mkData
End Sub >>10
とりあえずコードは打ち直さずにコピペしてくれ
なんかのタイポだと思う ピボットテーブルが優遇されてるように感じる。
イベントもいっぱいあるしヘルプにも良く出てくる。
だけど俺、使ったことないし、どんなのかあまりわかってない
ピボットテーブルってそんなにいいものなの?
いろんなジャンルの仕事でつかうものなの? >>15
死ぬほど便利だから絶対に使えるようになっておいたほうが良い
ただ、結構柔軟性が無いので「何が出来ないか」を知っておかないと、
ピボットで捏ねくり回した挙げ句、手作業で最初から作るという事をするハメになる 大抵は関数とVBAで済ませるからピボットテーブル使ったことないや ピボットって簡単手作業でグリグリいろんなこと試せるところがいいんじゃないの?
最初から表現方法決まってるならvbaがよさそうだけど試行錯誤して自分の表現したいグラフを探れるところがいいところだと思うんだけど。 ああちょっと語弊あったかな
一回目は試行錯誤するけど、2回目はvbaでパーって出す感じ。毎月同じ資料作るときとかね
一回目からvbaは使わない おまえらVBA 、VBAって無知からVBA使えるようになるまでどれくらいかかんの? >>21
プログラムの知識があるならすぐ。
無いなら止めといた方がいい。 >>21
人に丁寧に聞く姿勢があれば、誰かが手取り足取り教えてくれる
単純な物なら1日で出来るようになると思う
君の態度だと誰も教えてくれないだろうから、いつできるようになるかは良く分からない って書いたらいきなりハネられてて笑った
まぁそういう事だ スペシャリスト2013は受かったんだけどエキスパートって難しい?
セルの大きさ変えられるのも知らないとこから使い始めて2ヶ月でスペシャリストはいけた
点数は960点台
どのくらいかかるか見当つけたい
簡単なマクロなら組めるとこでグラフとブックの扱いは苦手 【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
VBAを使い共有フォルダにある別のPCで開いているブックをReadOnlyで読み込み専用で開いたあとに
読み込み専用ブックを消そうとするとApplication.DisplayAlertsを使っても警告文が出ます。
読み込み専用ブックのみを消すことは可能なのでしょうか? >>26
エキスパートとスペシャリストは範囲が違うだけでそんなにレベルは違わないと思うよ
内容がほぼ重複してないからエキスパートも新しく覚えるつもりで勉強してみれば
スペシャリストで960点取れるなら余裕よ >>26
吸収はやいな
>>27
×読み込み専用
○読み取り専用
×消す
○閉じる
上書き保存せずに閉じるなら、以下はどうかな
保存フラグを無理やりtrueにすることで上書き保存の警告を出させない
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
実際には以下のようにopenしたbookをsetしておくと思う
set readbook = Workbooks("foo.xlsx").open
readbook.Saved = True
readbook.Close >>29
ありがとうございます。
明日会社で確認してみます。 excel2016 64bit
win10 64bit使ってます
officeのアップデートバージョン1901以降かなりexcelが重くなりました。
起動後、常に再計算ばかりです
オプションの言語から、英語を既定にする若しくは、一つ前にダウングレードすると収まりますが原因は何でしょうか? >>31
原因なんて山程考えられるが・・・
・アップデート
・フォントが多い
・F9キーが押しっぱなしになっている
原因を考えず、解決方法を試しまくった方が良い
とりあえずアップデートを一度アンインストールしてみてはどうだろうか
https://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=017982 エクセルの保護ってどれくらい厳重なのか知りたいです。
VBA駆使して、かなり業務効率がよくなるシステム(.xlsmファイル)を作ったとして、
それを使えばみんなの無給残業がなくなるだろうから使ってもらいたいんだけど、
「それ、(私)が作ろうとしてたのがぜんぜん使えないポンコツだったから俺がまともに
改良したんだよ。みんな使って」と、手柄を横取りしそうな先輩がいます。
かってな改良(起動時に「○○(先輩名)作」と表示されるだけのくだらない改変)をされるのが目に見えてる
ので、それを阻止したい(ただの私のケチな性格のせいですが)です。
VBAにパスワード保護するとしても、数打ちゃ当たる式で突破を試みるフリーソフトを使えば
簡単に破られてしまうものなんでしょうか?
文章か、ってくらいの長い文字列でパスワードをかければ、VBAの中身までは見られないってことは
ないでしょうか?
所謂VBAの保護以外に、なにかいい改変阻止ガードってあるのでしょうか? >>33に追加なんですが
エクセルだけで作った業務用のソフトを有料で売ってる人とかいるじゃないですか。
ああいう人は、もし簡単にソースを見られたら食いっぱぐれると思うんですが、
どういうプロテクトをしるのでしょうか?
できれば私もマネしたいです。 >>33
パスワードを固定しなきゃ良いんじゃないの?
可変パスワードを作る式をどこかのセルに仕込んどけば?
あとファイル閉じる前に毎回
BuiltinDocumentProperties("Author").Value = "オレ様 "
とかも未熟な先輩には有効かもね >>33
> エクセルの保護ってどれくらい厳重なのか知りたいです。
保護としてはほぼ無意味
MS自身がこんなことを書いてるくらいだし
https://cybersecurity-jp.com/wp000/wp-content/uploads/2018/07/images08.jpg
読み出しパスワードは暗号化もするしそれなりの意味はあるけどパスワード知ってなきゃ使えないから人に使わせるのは無理だし
そもそも
> VBA駆使して、かなり業務効率がよくなるシステム(.xlsmファイル)を作った
としたら上司にこういうの作ったんだけどどうでしょうと相談すればいいだけ excelの機能に頼るのはいいけどその人をなんとかしないとこれから先も同じようなことが起こるな >>33
パスワード総当りしなくても中身を見る方法はある
誰が作ったか分かるようにしたいなら自分が作ったと言って配布するとか周りに根回ししておくとかアナログな対応が楽だと思う >>33
vbaだけじゃ無理
VB.NETで作ってdllにして呼び出すのが一番楽で確実に隠蔽できるけど、
多分それすらしんどいと思うから
>>37
みたいに上司に相談が良いと思う
で、「知らない人が勝手に改造するとファイルが破損する可能性もあるので絶対に辞めてくれ」
と釘を差しておけば大丈夫 「確実に」ってのはvbaコードを横取りする程度からの防衛策としてね
dllの中身見れるような人ならvbaぐらい書けるという前提 唐突にすみません。sumif関数について教えてほしいです!
合計範囲の部分がセル参照での値の場合、結果が0で返るのですがどうすれば良いでしょうか?
ex:a列1〜3に月、火、月。b列1〜3に100、101、102。c1〜3列にb1×2、b2×2、b3×3の時、=sumif(a1:a3,月,c1:c3)とすると204にならず0となってしまいます。どうすれば204になりますか? >>42
=SUMIF(A:A,"月",C:C)
https://i.imgur.com/vS4VkDN.png
506じゃねーの(はなほじ >>43 そうですね。この場合506になりますね。※b3×2と書いたつもりでした、すみません。
画像も見ました!c列の値はセル参照を用いた数式(=b1×2)のような形で記載されてますか?上記のような場合だと、0で表示されてしまいます。。 >>44
・数式タブ→数式の表示
・D列にその数式を手で打ち込む
どちらかで対処するしかない
ちなみに何のためにそんな事してるの? >>44
普通に出るはず
月 じゃなくて "月"
という指摘なだけじゃね >>28
ありがとう
2ヶ月2ヶ月くらいのつもりで計画立ててみるわ すいません、Excelが上手くなるコツってありますか?
簡単な関数がわかる程度ですがVBAなどもマスターしたいと思います。 ある程度目標を持って勉強した方がいいね
vbaと言っても文字列の変更やファイル操作など非常に広い範囲で色々できる
まずは目標を決めてみるのがいいんじゃないかな 今日になって条件付き書式の文字色が反映されてもすぐ戻るバグが発生するようになったんだけど俺だけ?
例えば、全ての文字色を白にしてて
VBAでネットから情報を取り込んで数値が条件にあっていれば、文字色が黒になって見えるようにしてるんだけど
取り込んだ瞬間は黒文字になるんだけど、アクティブにしたら白字に戻るみたいな現象が起こるようになった
誰か同じ人いる?Excelは365つかってる エクセルに入力されているセルの一部のデータが、入力されているのにも関わらず罫線や文字が画面上表示されないバグが起こっていて困っています。
セルを確認するとデータは間違いなく入力されていて、印刷するとその通り出てきます。
症状は今朝からで、エクセルのバージョンは2016です。 新規ブックで再現するのそれ
しなきゃブックがおかしいんじゃないの >>55 してみたのですが、変わらずです、、
>>56新規ブックでは再現出来ませんでした。10年以上使っているブックで、今までこんなことはありませんでした。
一部のシート上で当問題が発生します。症状が起こるシートでは、新たに文字を入力しなおしても、ロールアップ、ロールダウンで消えてしまいます。 >>52
確かめてみたら新しいブックだとならないや
でもバックアップ用のファイルも同じ現象なったから、たぶん何かドライバとかでシステムが変わったのかもしれない
もう少し検証してみる 描写の更新的な機能がなんかバグってるっぽいんだよね
スクロールしたらなったりするから >>57
なんかゴミデータがたまっている
新規ブック作ってシートを一個ずつ移動させれば解決すると思う IDすらないんだから安価くらいちゃんとつけない?
誰が誰に言ってるのかわかりにくいわ
安価のつけ方は半角で>>だぞ
>>61
みたいにするんだぞ さすが!オレっ!! 誰も褒めてくんないから自分で褒める
俺ならできる俺ならできる俺ならできる俺ならできる
そおゆう暗示を壁にぶつかったら唱える
決して人前で声に出したりはしないけど、悩んだら唱える
それ以前に何人もが挫折した案件 たらい回しで巡ってきた案件
試行錯誤したりスクラップ&ビルド繰り返して・・・ 成し遂げる
そこでつい冒頭の「さすが!オレっ!!」 が出る
やればできるじゃ〜ん、おれ えへへへへ
いやしかし、おれに出来るんなら誰にだってできる
思い上がらないよう自分を戒める そんな日々の繰り返しさ! ってやんでいっ
いや、Excelのハナシじゃ無いんですけどね >いやしかし、おれに出来るんなら誰にだってできる
だが、俺が最初にやる >>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
昨日から急になったんだけど、なんだこれ… index関数を使って、テーブルの範囲を記述していたのですが、テーブルの数が膨大になってくるとメンテナンス性も悪いので、なにか短縮できる方法とかありますでしょうか。 テーブルの数っていうのが参照先の行が増えてるのか列が増えてるのか参照するシートが増えてるのかで意味が違ってくる
offsetとcountとか組合せて使えば参照範囲を可変に出来たはず
参照シートを変えたい場合はINDIRECT使って参照シート名を指定出来るようにすればメンテしやすい あぁ、参照範囲の記述を短縮する方法だとしたら回答間違ってたわ
範囲の記述を短くしたいなら名前の定義で出来る >>67
ありがとうございます。
テーブルに名前をつけて、それを羅列するって感じですね。
何か範囲を別持ちして、その別でもったものを指定するみたいな方式がないかと考えていましたが、そこまで便利なものはさすがになさそうですね。 >>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 >>68
何か範囲を別持ちして、その別でもったものを指定するみたいな方式
それなら最初の回答したINDIRECT使えば出来る >>64
それはビデオカードのドライバのバグ
Excelは悪くない
最近アップデートしなかった? 計算式のセルだけ文字色を変えるにはどうやればいいですか? 【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 >>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 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
vbaで作成したエクセルマクロをアドインファイル(xlam)に変換後、このxlamファイルを保護したいと考えています。
ただし、パスワードの保護ではなく、VBのプロジェクトウィンドウに表示されるxlamファイルを展開しようとしても、
「プロジェクトを表示できません。」と表示されるようにしたいです。
どうやっても解除できないガチガチな保護は必要ありませんが、「プロジェクトを表示できません。」と出て
vbを表示できなくする程度には保護したいと考えています。
このような保護は、どのようにすればできるのか教えてください。 Row関数でA列にあるデータの個数+1番目の列番号を出したいです。
とりあえずB1セルに=COUNTIF(A1:A10,">0")+1と入れて、=Row(A&"B1")のような形にしたのですが、数式に問題が見つかりました。と出てしまいます。
どうすればいいでしょうか。 >>78
それが最適なパスワード保護の使い方だと思う
なんで避けるのか良く分からん
>>80
>データの個数+1番目の列番号
良く分からん。列番号は1にきまっている
データ個数+1ならこれ
=COUNTIF(A:A,"<>")+1
最大の行番号+!ならこれ
=MAX(INDEX((LEN(A:A)>0)*ROW(A:A),0))+1 【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
CD収録の音楽リストをまとめています。曲名・アーティスト名など25列ほどあります。
旧バージョン時代から入力してきた経緯もあり97-2003の .xls で保存してきましたが、
曲数が増えたので .xlsx に「値のみ」で移したところ、データ量が半分になりました。
見た目は新形式に移行したようですが、データ量が半分に減って正常なのでしょうか?
31MB→14MB、計算式は無く全てテキストデータ、書式はフォントを色々変えている。 >>76 ありがとうございます。
しかし使ってるコードも本やネットで拾ったもので
どこをどう直したらいいか分かりません。
あれこれ試行錯誤してますがエラーになります。
マクロに手を出したのも数ヶ月の初心者です。
何とかその辺を汲んで教えていただけませんか?
お願いします。 >>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 教えてください。
VBAの命令の、Application.screenupdating = false って、
なんらかの処理が一段落ついたところで解除されると考えていいのでしょうか?
どこかで= True と書いておかないと、画面上はずっとうんともすんとも言わないってことは
ないようなんです。
Do とか While文では、ちゃんとループから出る条件を書かないと無限ループになってしまう
ことがありますが、screenupdatingは、そんなことないようなんです。
=trueは書かなくてもいいんじゃないか、と思うくらいです。
どうなんでしょうか?updating=falseが解除される条件ってのがあるんでしょうか? >>86
画面描画が100%停止されるわけではなく、
恐らく負荷がかかっていないようなタイミングで画面の更新は行われる
>=trueは書かなくてもいいんじゃないか、と思うくらいです。
別に外すのは勝手だけどどうなっても知らんよ
自己責任でどうぞ
>どうなんでしょうか?updating=falseが解除される条件ってのがあるんでしょうか?
知らない
ウォッチ式にでも入れておいて確認すればいいんじゃないかな
めんどいから俺はしない
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.screenupdating >>85
目が覚めたら神様から返事がありました
感謝します
もちろんこれから頑張っていきますが
そのヤル気を大きく加速させる
スイングバイのようなレスです
ありがとうございました。 ハイパーリンク関数について教えてください。
Sheet1のA1セルが8ならSheet2のA8セルにジャンプ、
Sheet1のA1セルが50ならSheet2のA50セルにジャンプするようなやり方を教えてください。 A8かA50から永遠に抜け出せなくなるけどいいのかな >>90
=HYPERLINK("#sheet2!A"&A1) >>93
ありがとうございます。お陰様でできました。 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
エクセルでjsってどうやれば使えるようになるでしょうか
参照設定でしょうか 【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
.xls で作っていたファイルを .xlsx にしたところ、何の変更操作もしないでも
ファイルを閉じようとすると保存確認のメッセージが出るようになりました。
どうしたらメッセージを消せますか。マクロなどは使っていません。 >>97
揮発性関数か、外部リンクかindirect辺り使ってない?
https://www.civil-design.net/free/data/excel/function/13.html
使ってないならバグがあるような気がするので、
新しいxlsxブックを作って、xlsファイルからシートを一つずつ移動させてみるって方法がある 例なのでちょっと違うんですが、例えば
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・・・)という感じになります。 >>99
c列と言われても・・・?としか
要は
・ピボットテーブル
・作業列
・配列数式
のどれかだと思う >>98
シートごとに.xlsxに移行して追い詰めていったら、
マイナス符号で始まる文字列が #NAME エラーになっていました。
解決しました。ありがとうございました。 【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)
を選ぶことはできるのでしょうか? >>99
=SUMIFS(C2:C200,A1:A200,"国",C2:C200,">=30")
30点未満が赤点で2行目から200行目までデータがある場合 >>99
sumproductでいける気がするけど
後で作ってみるか 合計処理してるセルを選択すると、合計元のセルに色がつくとかできますか? vbaじゃなくて初歩的なグラフの作り方で困っているのですが、質問したらスレチでしょうか?
探しても見つからなくてそういうスレがあるなら誘導していただけると幸いです... >>103
環境がないから回答できないんだけど、
自分でやった方が早い気がする
>>107
数式→参照元のトレース
>>112
データラベル
https://i.imgur.com/vtRVIcV.png >>112
グラフの種類が違う
100%積み上げグラフと積み上げグラフ >>112
合計の%をデータラベルで表示したいということか?
100%積み上げ縦棒グラフでなくて、ただの積み上げ縦棒グラフで作る。
・百分率の系列に「合計」も作っておく。
・グラフ上の合計の系列は「塗りつぶしなし」
・追加したデータラベルは、合計の系列だけラベルの位置で「内側軸寄り」
・縦軸の最大値が自動だと倍のレンジになるので、手動調整 【1 OSの種類 】 Windows7
【2 Excelのバージョン】 Excel2016
【3 VBAが使えるか 】 否のようなそうでもないような
【4 VBAでの回答の可否】 できれば回避したい
日ごとにシートを作っている集計シートで、全シートの同じセルを参照して合計を出しているセルがあります
シートに行を足したり列を足したりした場合、そのシートにかかわるところだけが自動的にシフトするのですが他のシートを参照している部分は変わらないのです(当然ですが)
これを自動的にずらす、方法はないでしょうか?そもそも全シートを参照するのにずらっと全シートの参照式を並べて足している状態です
vbaならシート名を変数にしてしまって全シート集計容易なのはわかってます
が、使う側が「マクロ?なにそれおいしいの?なんでボタン押す手間いるの?」なので… >>118
vbaにした方が早いんかな…
前回列足されてずれてて集計ミスが発生したもので
そう列は足す事はないとは思いますが…
vbaなら見出しを参照してその行を自動的に拾い出すぐらいで組めそうなんですが
関数でそれを実装するとセルにどれだけの関数を押し込めなきゃならんかと思うとちょっと
fornextって関数にないですよね?
vbaにしたらしたでさかのぼって7日間のみのデータを随時集計して色々役立てる事はできるので導入はしたいのですが、
なにぶんにも運用する上司がまるっきり知識ないので 日付をキーにindexmatchとかvlookupして足すのは? >>117
各シートで参照する合計セルが1つなら、
A1固定にしてしまえば、少しは楽?
合計行か合計列のどちらかなら、
1行目かA列に寄せてしまうとか。
で、
FIND、ADDRESS、MATCH、INDIRECT
を組み合わせて、縦横セル番地を特定するとか。
ただし、日別のシート名指定は
手動になるかも知れない。 みなさんありがとうございます
>>122がいけそうですね
それか集計シートを別に用意してそこで集計させるか(そうしたら自動でずれるかな?) 【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
数値の表示形式で数値の桁数より少ない下の桁だけ表示する方法はありますか?
例えば数値が 12345678 のとき 345678 だけ表示。
または日付の表示形式で日や月日が不明の時に00と表示する方法。
例えば2019年?月?日は 190000、2019年2月?日は 190200 と。
ただし数値として並べ替えが可能なもの。 >>125
Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について
https://support.microsoft.com/ja-jp/help/883199
>例えば数値が 12345678 のとき 345678 だけ表示。
無い
>不明の時に00と表示する方法。
がどう入力されているかが分からない
>例えば2019年?月?日は 190000、2019年2月?日は 190200 と。
>ただし数値として並べ替えが可能なもの。
両立は無理 上のはright関数で固定桁なら表示できるんじゃね >>125
どのセルに何の数値が入っているのか具体的に言ってくれれば回答しやすいな >>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)
なんてのを中にはめ込んだら? >>128
>>131
>>127が変態的な機能という言い方しているのは
>>125が、「数値の表示形式で」という指定をしているからじゃ・・・
つまり作業列を使わず同じセル内で変えて欲しい模様 >>133
重くなるけど超便利だぞ
普通の数式で出来ないことができるようになる indirect関数は作業列と併用すると視認性も良いな 参照先のシートが差し替えられる事がある場合もINDIRECT使う >>125
6桁分のセル幅に納めるのが目的なら、表示形式を文字列、配置を右寄せに。
これなら不明の00も、1999年以前の並べ替えも可能。
ただし、文字列とした後に入力した値は文字扱い、
入力済み値のセルを文字列としたのは数値扱いなので、
並べ替えを可能にするにはfixed関数で数値を文字列化が必要。 >>134
まじでか。理解して応用効かせたいよ。
てかここにいる人、みんなすげーなー。なんでそんなにポンポンと関数やらVBAがでてくんの?仕事でしてるから?Excel漬けの毎日が数年続いてるから? 別にExcel漬けじゃないけど、Windows95の頃から使ってるから、もう20年以上になる
だけど知らない関数も多い
統計とか使ったことないし 15年ぐらい使ってるな。これ覚えれば絶対に楽できると確信した
15年前の俺はよくやった
そして更にvlookupとvbaを覚えた時も衝撃走った >>141
俺の中ではlookup系の関数は使えない関数ってことで捨てたんだけど
そんなにいいものなのか?
個人的にはmatch関数ですべてまかなえる気がしてる vlookupで衝撃→indexmatchで衝撃→sumproductで衝撃
sumproduct古い関数なのになんでこんなに使えるの?
それとももっと有能がある?
基本的な使い方は
sumproduct((○=縦)*(△=横),配列2)
なんだけど CSE最近知りました、衝撃!!
Excelなめてました、ごめんなさい。 >>142
indexmatchはvlookupの上位互換だけど、
なんちゅーか便利な技だね。必須ではあるけど・・・
vlookupは新しい世界が開けたといっても過言ではない indexmatch派のメンツも、入り口はvlookupだっただろうし、最初に衝撃うけたってだけかとw
sumproductは便利だからすぐ使いたくなるけど
重くなりすぎに注意ってとこがな・・・
使い始めた頃は、色んなサイトに例で出てくるrow関数に惑わされた 作業列を有効に使う事も大事だと思う
恰好悪いとか思ってる人もいるが長い数式ほど迷惑なものは無い
趣味で自分しか使わないなら構わないが 画像の説明通りですが
2つの数値の差を
+−表示で別のセルへ表示したいのです。
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
画像です。
https://i.imgur.com/3b1rWck.jpg
宜しくお願いします。 >>148
多分書式設定でやったほうが良い
=b1-a1
https://i.imgur.com/21Wxroo.png
ユーザー定義に入力するのは以下
+0.00;-0.00;±0.00;@
数式がいいなら
=IF(A1=B1,"±",IF(A1>B1,"-","+"))&ABS(A1-B1) あとで計算に使わないならお手軽にTEXT関数でもいけるんじゃないの
=TEXT(B1-A1,"+0.00;-0.00;±0")
パーセント表示のとこの実際の値がどうなってるかわかんないけど Multiplanが染みついているので、余程でないとただのLOOKUPしか使わない。 文字列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が取れてしまう。
マクロでやれば簡単なんだけど、計算式でやりたいっす。 >>154
0&"000000"で無理やり1桁増やすとか なんとなくけど、"-"を付与してminで取れば行けそうな気がするんだけど0も-0になってるみたいで無理だった
=MIN(INDEX((LEFT("-"&$A$2:$A$700,2)=TEXT(0,"-0"))*$A$2:$A$700,0)) >>154
作業列使い単純に数値化してMINじゃいかんの?
意味がよく判らん フォームボタンクリックで、あるシートを表示するVBAを書きました。
ただ非表示シートを表示させるだけじゃなくて、
そのときの条件で、シート内の文言やラジオボタンたちの表示/非表示が違うので、
if **** then *****.visible = true みたいなことをずっと書いてあります。
しかし、命令通りに非表示/表示がされないことがあります。非表示のはずのボタンが
出ていたり、その逆があったり。
これは、処理スピードのために、命令全体を、
application.EnableEvents = false 後はtrue
application.ScreenUpdating = false 後はtrue
application.Calculation = xlCalculationManual 後はxlCalculationAutomatic
で挟んだせいだと思います。
ですので、いちばん最後に、「いったん表示をリフレッシュ」みたいな命令を出せばいいんじゃないかと
思うのですが、そういう命令ってありますでしょうか? >>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
マクロ使えるぐらいだし、作業列使わない方法を効いてるんだろう
これは実務じゃなくて半分遊びだな >>159
vbaにリフレッシュ無いっぽい
>そのときの条件
これが再計算や描画が影響するものなら高速化を外したほうが良いと思う
言うてもそんなに変わらんでしょ >>161
それが、かなりスピードが違うんです。10倍近く。 コード見ないとわからないな
ちなみに何秒ぐらい変わるの?頻度は1日何回ぐらい?
10倍はどうでもいいぞ >>163
使用頻度は1日100回くらい。
10秒以上かかってるのが1秒になる。
せっかちな社員が使うから、
速くしておかないと「使えない奴」と思われるからまずい。 シートを日数分追加したいのですが
31日分だったら31枚プラス集計の1枚といったかんじで
超絶面倒なのですが何かいい方法はありますでしょうか?
シートに日付も入れられるとすげー楽です。 エクセルを使ったことがない初心者です。
ウィンドウズ10にエクセルソフトを入れたいのですが何を購入したらいいですか?
それから勉強もしたいのでお勧めの本とかありますか? >>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試験の本でも買っておくと良い ぶぉ、スプレッドシートはVBAいけないんだw
まぁ当たり前か。
jsでかくのかぁ・・・ なんでマイクロソフトはマクロ含むブックは
拡張子わけるようにしたわけ?いらんくね? >>172
分ける必要はある
一緒だとウィルスが危険すぎる >>160
ありがとう!できたよ。
その他みんなもありがとう。
いろんな方法があったのだけど、MAXは簡単に実現できたのに
MINができなくて、計算式一発でやれる方法を模索をしてました。
ワーク列使ったり、マクロ使ったりすれば、実現できてはいたんだけど。
ありがとう!! 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
下記の画像のような表があるとして、どこかのセルに5と入力するとC列の9と10の平均の値を表示させるということは可能でしょうか?
https://i.imgur.com/TUgDSmc.jpg >>176
C列全体なら8.5と思うが、
7.5と5はどこから来たんだい >>177
数字間違えてました。
9と10ではなく7と8です。
B列で5と入力されている行のC列の値を平均してセルに出力したい、ということです。
分かりづらくて申し訳ないです… >>178
=SUMPRODUCT((B:B=F3)*(C:C))/COUNTIF(B:B,F3) >>176 素人考えだけどe列に5を入れてどこかに平均出すセル作るとかなら
=AVERAGE(C1:indirect("c"&MATCH(5,E:E)))とか? >>178
=AVERAGEIF(B:B,F3,C:C) >>181
これでできました!
皆様ご尽力ありがとうございました! ここでもいいしソーシャルワーキングで検索してランサーズとかに頼んでも良い >>186
ここで大まかな仕様を説明してから捨てアドで詳細決めれば良いじゃん 流石にお金払うレベルのものは、ここではやってくれないと思うぞ
軽く依頼するつもりでも、フタを開けてみると
依頼できるレベルに仕様がはっきりまとまっていない・・・なんて事もよくあるから
>>187 の言うように、詳細詰めるのはここで相談するのはアリだと思うけど >>186
3年くらい前ここで依頼された事あった
尼ギフト券で2万貰った 捨てアドで直接やりとりしてその後お礼を渡すのなら可能なのかな?
まぁブッチされても知らんが ▼━質問テンプレ (出来れば使ってね) ━━━
【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 >>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 >>193
だけど言い忘れてた
テキストボックスをダブルクリックするとprivaet〜が表示されるからそこに突っ込む >>193
splitのようなものがあるのですね…初見でした
アドバイスありがとうございました 求人サイトでよく書かれている「エクセルが使えるかた」の基準って何でしょうか?
使える関数は、
SUM、AVERAGE、IF、INDEX、MATCH、RANK、
LARGE、SMALL、LEFT、MID、RIGHT、OFFSET、
IFERROR、TEXT、SUBSTITUTE、MAX、MIN、
COUNT、COUNTIF、SUMIF、SUMPRODUCT
くらいです。
グラフは条件付き書式のデータバーやスパークラインくらいならできますが、
円グラフとかは全くできません。
マクロは実操作でアクションを覚えさせるのはできますがVBAのプログラミングは全くできません。
ビポットテーブルも全く分かりません。
「エクセルが使えるかた」に入りますか? >>198
微妙だけどグラフが勿体無いな
グラフだけ作れたらそう言っていいと思う。なんか知らんけど日本人はグラフ好きなんで
関数は十分
個人的にはindirectがほしいけど、offset使えるならまぁいいかな
後は書いてないけどandとorか、まぁ使えると思うけど
>グラフは条件付き書式のデータバーやスパークラインくらいならできますが、
>円グラフとかは全くできません。
とりあえず最低限グラフ作れるだけの技能は必要
といっても、表を選択して、挿入のグラフを選択するだけなので数秒でできる
ってか今練習して使えるようになれば良い。1分もあれば覚えるだろう
それと欲しいのは、グラフエリアの軸の書式設定は変えれるようになっておいたほうが良い。要は左端の数字の最小・最大・メモリの幅など
まぁそんだけできたら良い
後はそこら中を右クリックしまくって、なんとなく何をどう変えられるかを掴んでおくと大体どうにかなると思う
例として、10秒で作ったグラフ
https://i.imgur.com/410w6wq.png
>マクロは実操作でアクションを覚えさせるのはできますがVBAのプログラミングは全くできません。
勿体無いな。恐らくマクロは触らされないとは思うが、もうちょっと覚えた方が後々良い
マクロは業務を全自動にできるので、君が退職した後も仕事を減らし続けることができる
俺は五人分ぐらい働いたぞ
時給は上がらんかったがな、ははは
>ビポットテーブルも全く分かりません。
これもグラフ同様覚えておいたほうが良い アイコンダブルクリックしてExcel起動、数値を入力したあとΣボタン押して合計を求め、ブックに名前を付けて保存
こんだけできれば「Excelできます」と言っていい
そんな職場も実在する
できないやつってのは、こんな基礎もとことんできないから >>198
データ処理をメインとする俺からすると少し足りないかな
if使うならis系の関数(isnumber, iserror, iseven他)便利なもの多いから覚えたほうがいい
他にもmatch, indirect + address, row, columnが理解できれば本当にできないことがないってくらい何でもできる Σボタンって何の事かわからんかった
多分10年以上押して無いけど、これってみんな使うの? >>202
個人的にはほぼ使わないけど知らないのは流石にヤバイレベル >>198
エクセル使える人に入る入らないという定義自体がもうどうでもいい感じだけど、入るとも言えるし入らないとも言える
でも「入らない」と言いたくなる、何故なら
・ピボットできないの厳しい
・円、棒、折れ線グラフ作れないの?
↑どれも範囲選択してポチっでボタン押すだけ、あとは微調整やら
普通の本が読める人ならやる気さえあれば15分ずつで解決する
それをやるかやらないかだけの話で、あとは正直に実務ではやったことないけど自己学習でやったことあると言えるかどうかなんでは?
あとIFERRORでVlookupのネスト(必要な数いくらでも)くらいはできて欲しいし、TRIM,LENあたりのデータ整える時必要ないのもできて欲しい
ピボットは、数字見る時話しながらショートカットでピボット作って、なんてことあるからそこでまごついているのってと思ってしまう >>198
自己申告だろうから
そのくらいなら自信もって使えますと言えばいい >>198みたいな具体性ない書き方は、大概大したスキルを求められてない
本当に高レベル求めるなら必要レベルの資格を書いてあるよ >>220
使わないとならないボタンでもないので、
また使わなくても手間がすごく増えるわけでもない
でも、使い始めたら結構つかうようになったよ。 おせっかい機能がひどすぎて、小文字の「i」が入力できない。 SHIFT押しながら7押して文字列を入力すれば関係なくなるような >>82
xlsxファイルの実態はzipファイルだしね。 エクセルなんて利用者がめちゃくちゃいるから
わからないことなんてネット検索ですぐわかるようになる >>209
シングルコーテーションでしょ
あれってスペルチェック効かなくなるの?切ってるからよく知らんけど 教えてください。
むちゃくちゃな編集を禁止するためにシートを保護しても、一部のセルだけは
「ロック」というところのチェックをはずしておけば、編集可能になりますが、
条件付き書式で、「編集可能=ロックされていない」セルだけは自動で背景色が変わると
いう設定にすることはできないのでしょうか? 無理矢理なら、作業列にロックの場合1とか入れて、そちらを参照 >>213
条件付き書式の設定
[次の数式を満たす場合に値を書式設定]
=NOT(CELL("protect",A1)) >>213
要件が
編集可能=ロックされて「いない」
なので ▼━質問テンプレ (出来れば使ってね) ━━━
【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行近くのコードになるのが・・・
シンプルな方法はないのでしょうか? >>220
Openすると、自動的に後で開いた方のブックがアクティブになるので、CutはOpenの前にしなきゃいけない
とりあえず行数を減らしたいだけなら、これでも一応動く
もっと大量のデータをコピペしたいなら、もう少し工夫が必要
Rows(3).Cut
Workbooks.Open Filename:="C:\Users\testman\Desktop\Book1.xlsm"
ActiveSheet.Rows(4).PasteSpecial かねがね疑問だったんだけど、
>>216みたいなときに、A1って書くの、なんかへんじゃね?
別途「このルールの適応範囲」を指定するわけだし、別にA1関係なくね?
これのせいで混乱するんだけど。
これ、「仮にA1ってことで、条件と書式を指定しておきますね」としておいて、
他の箇所で「この条件付き書式を適応するのは○○ですよ。A1関係ないですからね」って言ってる、
そういう理解でいいの? >>223
だめ、A1の保護状態でB1の書式変えたりすることあるから >>223
相対参照か絶対参照かで判断すればいいんじゃないかな ラウンドダウン使って報告値計算シート作ったら、上司にブラックボックスを使うなとボツにされた
ブラック・・・ボックス・・・? >>226
スレチ
無能上司の下で働いてる事は同情するけど コメントで何をやっているか書いておけば大概解決する
何をやっているかわかれば、普通の人は細かいことを気にしないよ コメント付けると無能上司はバカにされたと思って逆ギレしかねないから
将来メンテの時に自分が忘れてしまうので付けたって事にしとけ thisworkbook.Sheets("日報").Range("C4:C50").SpecialCells(xlCellTypeConstants).ClearContents
↑
これ、C4とかに値が入っている状態だと問題ないんだけど、
いちど値をクリアしてから実行すると、「該当するセルが見つかりません」って出てくる。
エクセルが、「クリアしようと思ったらもうクリアされてるじゃん。エラー出しとこ」と言ってるみたい。
そういうもんなの? >>231
そういうもんらしい
https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.specialcells
>指定された条件を満たしているすべてのセル ( Range オブジェクト) を返します。
条件を満たすセルがないってエラーのようだ
あんまいらんエラーだな >>232
やっぱりそうでしたか。
ありがとうございました。
そうやってすぐに的確な資料を見つけて調べられるところ、頭がよさそうでうらやましい。 >>233
ってか、「MSDN 調べたい内容」で検索してmsdnで調べればいいだけだよ
しっかり読めば最も正しい答えが書いてある(たまに間違えている)
ブログとかしょーもないサイトは見なくて良い よくわからんが
thisworkbook.Sheets("日報").Range("C4:C50").ClearContents
ではだめなのか? 【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列に文字が入力された時だけ。
そんな関数ってあるでしょうか。一枚のシートで運用したいと思っている。 >>236
法則がよくわからない
2行目と5行目にZXがあるのに、5行目が18002にならないのはどういうルール? >>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 >>238
B1=18000+COUNTIF($A$1:A1,A1)
B2以下にB1の式をコピペ あー単純にその手があったか
sumifしてプラス1を考えてたよ >>239
ありがとう!
こんなに簡単なんやね。
行を飛ばしてもうまくいってる。
自分一人じゃ思いつかなったかも。
本当に助かるよ。 パソコンなら簡単にできるけど
タブレットとかでスプレッドなどをつかったとき
マウスでないから表作成とか簡単にできてたことがやり方がわからなくなる
範囲をのばして12345にしたりとか
どうやってますか? >>243
スマホやタブレットは当たり判定が広く作ってあるから慣れるしかない
あと、たいがいのAndroid機器はマウスもキーボードも使えるよ
USBかBluetooth接続で普通に操作できる 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 少しだけ
【4 VBAでの回答の可否】 できれば使わないでほしい。
見積書を表で作って、署名+捺印(陰影を図形で)してあります。
このままだと捺印部分がコピーできたり移動できたりするのですが
表と捺印を固定するため、グループ化できないでしょうか? >>245
図形を動かないようにするには、シートの保護 → 許可する項目の中の「オブジェクトの編集」のチェックを外すのが定番
見積書の日付や項目を編集するには、シートを保護したままセルのロックを解除しておく >>246
ありがとうございます。
「オブジェクトの編集」はチェックが外れていたのですが
パスワードを入れてみたらできました! >>244
それつかわないで
どうやっておなじことをしてます?
右クリックはどうやるのすまほで 【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
2007以降の拡張子(XLSXなど)を開きたくて
開けずに困っています。
まだ「互換パック」がマイクロソフトのサイト
からダウンロードできるからそれを実行して
みたところ、「何も影響しない」とか表示が
出て、まったく使えない様子です。
ちなみに、2018年4月以降、サポートが
されなくなった、との情報もあります。
これってもう機能しないものを配信している?
できたって人いますか??? >>248
画面を長押しすると右クリックメニューが出る >>249
開けるかどうかはブックの内容次第なので、だめなら別の方法を考えるしかない >>251
PCのマウスでやってる操作は全部できるようになってるのもしかして? >>253
できない操作もあったはず
そういうのはメニューから選ぶしかない >>252レス感謝します。
内容次第では開けるものもあるはずということですね。
試してみます。 >>255
オフィスオンラインか、googleスプレッドシートなら無料だよ
どうしても無料がいいならそちらで試してみては >>249 なんで未だにそんな化石使ってんの
職場でならとっとと新しいの入れてもらえだし私用で金がないとかならOpenOfficeなり使えばいいじゃん 2003は軽いからなあ
回線やPCの性能が普通レベルでもgooスプは動作が重くてあんまり常用したいとは思わんな
ネット越し共有が簡単にできるのはいいけど ここのスレでこういう反応なのは、時代かな。
他に旧いの使っているよっていうスレがあるならそっちにいってみよう。 時代じゃなくて普通だよ
2003はさすがに不便すぎる
家計簿作るなら十分すぎるけど オフィスは1万A万かかると思ってたけどもっと安く買えるからね
しらないころは2003年ぐらいを最近まで使ってた cell関数はひと通り見ておいたほうが良い
inderectみたいに少し変わった使い方が出来る
大半は一生使わんけどな >>261
>2003はさすがに不便すぎる
このスレの総意なのね。と受け取っておくよ、一応は。 MSサポート対象外という事もあって
会社等はせいぜい古くても2010使ってると思う いまだに全社的に2000使ってるところは、たぶんライセンス違反やろ。
確か入れ放題だったはず。
まともな頭してれば買い換えるんやけどな 2013でも使いにくいと思う
Excelくらい新しいの入れろよな 2003は不便すぎて会社に損害与える
無料でも高い 役所なんかは、xlsファイルじゃないと受け渡し拒否してくるから
2003でどこまでできるかは把握している人は多いよな
xls形式だと2010以降の機能使うとエラーになりやすいから >>271
間違えた
2007以降
COUNTIFSとか使うとエラーになりやすいw C1のセルに、次のような表の値を計算して値を出力するにはどの様な関数を使用すればよいでしょうか。どうぞよろしくお願い致します。
A列に数量
B列に価格
C1 = A1 * B1 + A2 * B2 + A3 * B3... >>271
具体的にどこか教えてくれ
クレーム付けてくるわ >>274
ありがとうございます!
そのものずばりな関数があったのですね。助かりました 同じ計算をするのにsumproductと自分で配列数式組むのとどっちが早いんだろう?
sumproductは配列数式に皮を被せてるだけの関数に見えるから、内部的には同じ処理をやってる気がするけど >>278
以前聞いた話だと、配列数式は配列数式化の判定をしてから処理が始まるので
同じ内容なら関数の方が処理軽いそうな >>279
そうなんだ、演算の前に処理があるから専用関数の方が早いのね
VBAでコード組んで計測すればはっきりするんだろうけど 246810121416
みたいな数字をマスに並べるのは
=A1*1 みたいにいちいち入力していかないと無理ですか VBAで、いつどのタイミングで作っても絶対に重複しない文字列を作りたくて、
思いついたのが、「その瞬間の月日時間秒を文字にすればいいんじゃね?」です。
つまり、本日ただいま文字列を作るとしたら、20190313203415(年月日時分秒)となるようにすればいいのだ、と。
でも、それを、どうやって 変数に入れればいいのか、わかりません。
ひとつひとつ、
year(date) & right( "0" & month(date),2) & …… と指定するしかないのでしょうか?
もっとスマートに、「年と月と日と時と分と秒を桁をそろえて数値で構成される文字列に変えて」みたない
一発ですむような命令ってあるんでしょうか? テーブルを使わず
29
50
28
101
などの数値を昇順でならべることはできますか? >>281 最初のセルに2を入れて増やしたい列、行、セルを選択して
ツールバーからホーム→フィル→連続データの作成を開いたら増分値に2入れる
2010しか手元になかったから新しいので違ったらごめん >>282
format(now(),"yyyymmdd_hhnnss")
format関数は良く使うので覚えておいたほうが良い >>283
数値がA1からA4にあるとして
B1からB4に昇順に並び替えるのであれば
=SMALL($A$1:$A$4,ROW())
をB1からB4に入力すればいい 2016から365に変えて以降、ふいに表示を小さくしすぎて
10%表示くらいになるとだいたいフリーズしてしまうんだが
スペック悪くないのにハードウェアアクセラレータのONOFFでも変わらないし
誰かおしえて EXCEL 表示 縮小 フリーズ
で検索すると色々出てきすぎてどれか分からん
オブジェクトが多いとフリーズしやすいっぽい >>281
数字の間にスペースかカンマいれて
区切り位置のツール使ったらどうでしょう。 質問させてください
例えば、
19という数字を4と3.5で割る(って言い方は正しくないかもしれないですが)と
4がいくつになって3.5がいくつになるかって言うのは
関数で出来るんでしょうか?
(19だったら4が4つ、3.5が1つ、余りが0.5)
(19だったら4が3つ、3.5が2つ、余りが1)
余りが3.5未満になるいくつかのパターンが出るように出来たらなお助かります 計算間違えました
(19だったら4が4つ、3.5が1つ、余りが0.5)
(19だったら4が3つ、3.5が2つ、余りが1) ←こっち余り0でした ゴールシークと思うけど俺が使えないので回答キボンヌ >>292
>>(19だったら4が4つ、3.5が1つ、余りが0.5)
?????
(19だったら4が4つ、3.5が0つ、余りが3) >>293
うん、どっちも本気で間違えてました
このレベルで計算が出来ませんので自動で計算が出来る式が知りたいです どちらでも割れる28とかの場合は、
4だけで7で割れるし、3.5だけでも8で割れちゃうけど
4と3.5どちらを優先するとかあるの? >>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 → これが余り >>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を下のセルにコピペしていくと別の答えが何通りか計算できる >>289
マルチスレッド無効にしたらめちゃスムーズになりました
取急ぎ報告だけ すいません、エクセル全く使い方わからないんですが、こういう使い方って出来ますか?(そういう関数というか入力式ありますか?)
{そのセルの行番号の数字-(そのセルの数字×別の数字)}+また別の数字 のセルの数字を表示する
例えば、A100に10と入力したとして、
Aの{100-10×3}+1 (つまりA71)の数字をB100に表示する、ということです
(Aの1〜100は全部何かしらの数字が入力してある)
(当然、↑のことができればそれに基づいてBも埋まっていく)
ということです >>301
その場合、B100に
=INDIRECT("A"&(ROW()-A100*3)+1)
という数式を入れるだけです >>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 >>303
自セルの行番号を出したいときは、引数は省略可。 >>303
そのまま上下のセルにB100の数式をコピペするだけだよ
Excelさんが自動的に数式の中のセル番号を変えてくれるから >>303
A、B、Cは「列」
1、2、3は「行」
この区別はしっかり覚えた方がいいよ
Excelを勉強する上で必ず必要になる知識だから >>298-299
ありがとうございます、出来ました
絶対自分じゃたどり着くことのない式でした
凄すぎて感動しました >>307
ありがとうございます。なんかいつも、どっちが縦でどっちが横なのかイマイチわからないです(数学でも行列ってありますけど、行と列のどっちが縦でどっちが横なのか……)
>>306
ありがとうございます。
個別ではなく、なんていうのかな、数式を一般化するというのかな、一括で(一回どこかに数式を入れるだけで)全ての行について上で言ってきたような表示が出来るようにはできないものなんでしょうか?
例えばA100に数字入れてもA250に数字入れてもA1500に数字入れても、ただそれだけで↑で言ったような計算式に基づいてBのセルにパッと数字が出てくる、ということです。
(A1500に20と入れたら、それだけで「A1441の数字」がパッとB1500に表示される、ということ)
表示させたい全ての行についてそのつどB100の数式をコピペする必要がありますか?
=INDIRECT("A"&(ROW()-A100*3)+1)
↑これだと、(数式の意味は詳しくわかりませんが、)少なくともA100の部分が具体的ですが、これをどうにかして一般化して、一回の数式の書き込みだけで設定完了(あとは好きなAのセルに数字入れるだけ)みたいには出来ないんですかね?
要するに、2つ3つではなく全ての行についてやりたいので、そのつど数式をコピペするとなると大変だなぁ……と思っているということです(・・;) >>309
数式が入ったB100のセルをコピーして、B1からB1500でもB10000でも好きなところまで選択して貼り付け、ってやるだけでいいんだってば
それだけの簡単な手順で、式の中のA100と書かれた部分がA1からA1500に自動的に書き換わってくれるの
Excelの基本的な使い方だよ >>310
なるほど、一括選択→ペーストみたいな感じですか
それなら手間はかからないか
ありがとうございます!
ちなみに、B1500までB100の式を貼り付けした後、しばらくしてからB1501〜2000までも必要になったら、それはB100まで戻って式をコピーしなくても、B1500の式をコピーして1501〜2000まで選択して貼り付ければ大丈夫ってことですか? >>312
そうですか、わかりました、ありがとうございました!
とりあえずそれだけ必要だったので助かりました!
今度、ゼロからわかる〜みたいな感じのエクセルの本を借りて少しずつ読んでみようと思います >>303
行列どっちか迷った時はこう考えると絶対に間違わない
http://id.fnshr.info/2015/10/17/matrix/
10年以上EXCEL使ってるけど未だに頭の中でこれ考えるわ >>314
やっぱみんなどっちが縦か横かわかんなくなりがちではあるんですねw ある列に数字を入力したら任意の複数列にその数が合計になる数字がランダムに入るのって関数だけでできますよね?
たとえば45と入力すると6列の場合9 9 8 7 9 3と自動で入るような
(最大値と最小値も指定したい) >>317
できるけどルールをかなりしっかり決めないとうまくいかない気がする
「乱数 web」
で検索すればそれっぽいサイト色々あるから、ソッチのほうが早いとは思う 色々一気に質問が出てきて、何個か埋もれてしまってるな 一つの列に条件付き書式でセルの塗りつぶしが起るように設定しています。
例えばA列には数式(計算されるまで空白表示)が入っており、条件1「=A1<=10」で赤、条件2「=A1>=11」は緑となるようにしています。
ただ数式が入ってるところが勝手に塗りつぶされます。「""」でも条件付き書式で反応するのです。
【1 OSの種類 .】 Windows10 64bit
【2 Excelのバージョン 】 Excel365(最新にアップデート済み)
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否 >>319
どれの事か良く分からん
レス指定してくれれば解決するよ
>>320
こんな感じ
「条件を満たす場合は停止」にチェックを入れておけば、複雑にならない
https://i.imgur.com/QEQ9DFf.png >>321
条件を満たす場合は停止ってどういう挙動が起こるんですか?
要するに「""」で塗りつぶしが起こらないようにするためには、条件付き書式で「""」も設定する必要があるってことですね? >>322
>>320
への、そもそも論を言ってなかったな
空白のセルに対して不等号を使うと、0とみなされて
>条件1「=A1<=10」で赤
これが適用されてしまう
>条件を満たす場合は停止ってどういう挙動が起こるんですか?
条件付き書式は上から全て処理される
一番上の書式を設定すると、そこで終わりの意味
>要するに「""」で塗りつぶしが起こらないようにするためには、条件付き書式で「""」も設定する必要があるってことですね?
そう >>323
ああ、なるほど!理解しました。
セル内が「=""」でも0と見なされて条件1「=A1<=10」が適用されてたんですね。
だからセル色が変わってたのかー
無事解決しました。わかりやすい説明ありがとうございました。助かりました 【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を使わずにこの計算を行いたいのですが可能でしょうか? 前スレでの質問を再度書きます
【1 OSの種類 】 Windows7
【2 Excelのバージョン】 Excel2010
【3 VBAが使えるか 】 はい
【4 VBAでの回答の可否】 否
A列と、B列があって、B列に記入がなければA列の値を採用
これを各行の総計するのは、どうするのがシンプルでしょうか?
各行ごとにC列で作業列を設けるのがパッと思いつきましたが、他にいい方法があればと思いまして… >>325
ピボットテーブル
A列を選択しておすすめピボットテーブルを選べば一発で出来た
※おすすめ〜が2013にあるかは分からない
>>326
一行目に見出しがあるとして、
=SUMPRODUCT((B2:B4<>"")*(A2:A4))
個人的には作業列の方がシンプルに見えるけどね >>327
2013にもおすすめピボットテーブルは確かにあるのですが、
A列を指定しておすすめピボットテーブルを選択しても期待する結果が得られませんでした。
ピボットテーブル自体あまり理解できていないのですが、
B列のcountifsを削除しても重複が何個目かを算出できるのでしょうか? >>325
あぁ個数数えるだけじゃダメなのか
じゃあ連番振ってピボットでこういう形にするか、vba
https://i.imgur.com/5G8unT6.png
後使うのは
countifsじゃなくcountif 【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
SUMIFSをSUM関数とIF関数で代用できますか?
sum(if(and(条件1,条件2),1,0))
↑これだと正しく処理されませんでした。 >>331
sumproduct
=SUMPRODUCT((A:A="a")*(B:B="t")*(C:C))
https://imgur.com/a/9c1C9nJ
ただ、代用する意味が良く分からん 一枚のシートにデータを入力フォームを使用して入力する際に、例えば社員コード001の社員が入力するときには、該当社員が前回入力した値をフォームに表示させ、
社員コード002の社員が入力するときにはコード002の社員が前回入力した値を表示させるようにしたいのですが、VBA使えば可能ですか? >>334
もちろんvbaでも可能だけどちょっと大げさ
vlookup関数で可能
更に利便性を高めるなら、index関数とmatch関数を組み合わせたものにすると超便利になる >>335
ありがとうございます。
関数だけでも可能だなんて目からウロコです。
関数の勉強に励みます 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい・いいえ ?
【4 VBAでの回答の可否】 可・否 ?
右クリック→コメントの挿入
が表示されなくなって使えません
ショートカットからコメントの挿入を表示させるとグレー表示で選択できません。 業務上大量の郵便物を送ることがあるのですが、送り先を記録に残しておくために効率的な方法がないかアイディアを探しています
例えばexcelの特定の列に送り先の名前を記載するとして、その送り先は50通りだとします
そして誰に送るか・計何通送るかは日によって異なり、例えばn1〜n26までの26箇所に1通ずつ計26の送り先を記載する場合もあれば、n1に1通、n2に2通…n50に50通の計1275通送ることもあります
つまり50通りのうちどの送り先に何通送ることになるかは日によって大きく異なります
また、発送作業は随時しないといけないため、例えばその日のn1は何通…というのが決まってから一気に入力ということができません
それぞれの送り先nを随時手入力したりプルダウンメニューで選択したりするのは煩雑です
何か効率のいい方法はないでしょうか?
なお、一応excel板で質問させていただいていますが、同じことができればword・access等でも可能です、わかりにくい上板の筋から逸れた話で申し訳ないですがお知恵をお貸しください >>341
googleフォーム+googleスプレッドシートかなぁ
フォームを作って入力してもらうと、スプレッドシートにデータが溜まる
後は定期的に確認するだけ >>342
口頭で来るの?ですかね?
送るべき書類と宛先の指示が随時降ってきて、それを随時発送する感じです
>>343
ふーむそうすると結局データ溜める時には発送するごとにnを手入力して記録してかないといけないわけですね・・
バーコードの使用も考えたんですが、仕様により各郵便物に直接バーコードをつけることができません。
事前にn1〜n50の名称それぞれに特定のバーコード振っておいてそれをリーダーで読むってのも考えたんですが、それじゃプルダウンメニュー50通りから選んでるのと変わらないんですよね 50箇所のうち、今日はどこに何通送ったか
・・・を記録できればいいってこと?
プルダウンから探すのも面倒だっていうなら
50個のボタンでもつくって、縦10行*横5列とかでも並べて
ボタン押したら他のところで加算されていくようにでもしたら?
それぐらいなら目視でいけるのでは >>345
大体そうですが、正確にいうと送った順番も必要になります
aabbcの順で5件送ったならababcの順で記録されるのはNGということです
ボタン作るってのはいいかもしれないですね!
反射神経さえあればプルダウンメニュースクロールするよりは素早くいけそうですし、順番も遵守できますね。
試してみます。ありがとうございます。 VBA初心者なもので、>>345で教えていただいたボタン設置が上手くできません・・
例えばシート2にボタンを50個ずらっと配置して、押すとシート1のセルA1〜50に上から順に入っていくような感じにするにはどうすればいいでしょうか。(紙出力の関係上51通目以降は1〜50のデータを消してまたA1〜50に入れます) 教えてください。
シート1のBからF列の、5行目から下に向かって表があります。
表の行数は、そのときどきで変わるので不定です。最悪でも1行(つまり6行目)はデータがあります。
この表を、D列、その次にB列という優先順位で並べ替えをしたいのですが、
VBAでどう書けばいいのか教えください。
行数が不定というところがネックで、わかりません。
まず最下行の行番号を取得して、範囲を指定する、という方法しかないとは思えないんです。
何かスマートな書き方があるかと思います。よろしくお願いします。 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
エクセルvbaを使って、PC本体の設定時間にかかわらず、現在の時間を取得することはできないでしょうか。
どこかにネット経由でアクセスして、現在の時間を取得することができればと思っています。
このようなことが可能であれば、その方法を教えてください。 >>345>>347
できた
50行がどうとかは何も作っていないが、まぁなんとかできるだろ
https://dotup.org/uploda/dotup.org1801319.zip.html
>>348
マクロの記録はできる?
それで並び替えてみて、
b1:b5
を
b:b
に変えればいいと思う
無理だったらまたレスしてくれ
>>349
できるけどめんどい・・・
一応理由教えて >>350
あなたが神か
明日やってみます、心からありがとうございます >>348
範囲はrange("b6").currentregionでだめ?
見出し等が含まれてしまう場合はoffsetとresize >>350
345.347の者です
頂いたファイルを元にまっさらなシートに完全再現することはできたのですが、所定の様式だとボタン押しても入力されなかったり、入力する位置が違ってたりします
要は最終行の指定が上手くいってないんだと思います
具体的にはB6〜16に入力したくて、B1.2は空欄、B3はC以降と結合して文字入り、b4.5は空欄という感じだと、どのように変えればいいでしょうか・・ >>355
ちなみにB17以降にも1つだけ文字の入ったセルがあるので、B6〜B16範囲指定の上で最終行特定ってことをすることになるんですかね? >>355
最終行 = 確認シート.Cells(Rows.Count, 1).End(xlUp).Row
入力行 = 最終行 + 1
↓
最終行 = 確認シート.Cells(Rows.Count, 2).End(xlUp).Row
入力行 = 最終行 + 1
If 入力行 < 6 Then 入力行 = 6 ExcelでRS232Cのシリアル通信について聞いてもいいですか? 多分誰も答えれらないと思うけど、
聞くだけ聞いてみるのはok >>359
ありがとう
長くなりそうなので後で質問してみます >>350
期間限定のアプリ公開するためです。ぜひともお願いします。 先程のRS-232Cの質問です
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 初心者
【4 VBAでの回答の可否】 可
PCからteraterm等でコマンド「aaa」と送信すると「aaa,111」と返してくる機器があるとします
画像の様な物を作りたいのですが出来ますか?
mscommを使うと思います
VBAはド素人です
よろしくお願いします
http://imgur.com/fgus2av.png 追記
RS-232Cケーブルを接続しない状態でコマンドを送ろうとするとタイムアウトでerrorを表示できると良いです
http://imgur.com/9AJw95b.png >>362
どこが入力できる範囲?
何がしてーの? >>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 >>362
Excel VBA マクロによる TeraTerm マクロ生成(1)
http://kuroneko666.hatena
diary.jp/entry/20130101/1357054153
https://qiita.com/umeee/items/0b9c25215cbd7f397cb2
試してみたいけど機器がないからテスト出来ないんだよねぇ >>364
手入力はシリアルポートとコマンドリストです
teratermを使わずにExcelから直接シリアルコマンドを送りたいです >>362
まずはこのあたりを参考にしてハードーコードでいいから "aaa" を送信して "aaa,111" を受信するところまでやれば?
https://qiita.com/pbjpkas/items/f81947ce38941356ebe4 【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円
このような場合はどんな関数を使えばよいのでしょうか? >>357
お礼が遅れましたがなんとかできました、本当にありがとうございました! 長いけど
=if(e7<20000,500,0)+
and(e7<20000,sumif(b2:b6,"要冷蔵",d2:d6)>0)*300+
and(e7>=20000,sumif(b2:b6,"要冷蔵",d2:d6)>0)*600 2万円以下は2万円未満にして、商品代金(合計金額)がe7に入っている前提です 今までずっと現場仕事で今度事務職にまわされそうでEXCEL等使うことになりそうなんですが
事務職つくまでに自分なりに自宅でやる場合、どのような本やサイト見てやればいいものなんでしょうか?
また家にオフィス導入しておらずLibreOffice 6.0しかないのですが、これでも練習になるでしょうか?
くだらなくレベル低い質問してしまい申し訳ありませんがよろしくお願いいたします。 >>374
卑下しなくてもいいぞ
とりあえずは、別シートの数値のsum()やaverage()ができて、印刷範囲の設定が出来るぐらいでいいと思う
何を覚えれば良いかは会社で聞いたほうが早い
libreでも練習にはなるけど、見た目が違う事は覚えておいた方が良いと思う
表示→ユーザーインターフェイス→タブ
で少しEXCELに似せることは出来る
>>375
一番いいのはMOSだけど、
なんの初級資格でもいいから取っておけばok >>374
とりあえずショートカットキーを覚えれば潰しはきくんじゃないかな
Excelをどう使うかは、職場次第だからあまりあれもこれもと身構える必要はないかと >>374
俺と同じ状況だ
全く知らなくても大丈夫だったよ
必要な事だけなら本気で覚えれば何とかなる ここってExcelのみ質問可でしょうか?
Googleスプレッドシートはスレチでしょうか? たまに答えてくれる人もいるからスレチか微妙
ただgoogleスプレッドシートとExcelだと関数違ったりするから気を付けないといけない なんでタブレットとかだと
テーブル作って昇順降順にならべられないんだろう
CPUに負担がかかるから? タブレットとかだとスプレッドシートはテーブル作れないんだよ 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
today関数やnow関数が処理を重くするという記事を読んだのですが
これらの揮発性関数の代わりに使える関数はありますでしょうか? >>386
vbaを使うか、直接日時を入力するぐらいしか無い
重くなるといってもそこまで回避するようなもんではないよ >>387
テーブル作れないと並び替えできないと思うんだけど
PCで作った前提ならわかるけど >>389
何か勘違いしてないか?並び替えにテーブルは不要だぞ
あると便利にはなるけど テーブル作らないと
数値を入力して昇順にして
すうち 名前 ID とかがあって 数値で入れ替えても名前も動くの? 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013とGoogleスプレッドシート
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
複数列のセル参照表示について、Googleスプレッドシートの場合、
OFFSET関数を使用すると配列数式にしなくとも複数列を表示させる事ができますが
OFFSET関数を使わずindex関数で列数の項目に0を入れると
OFFSET関数のように参照範囲全てを表示させる事ができます。
これと同じことををExcelでやろうとするとOFFSET関数は配列数式が必要で、
index関数は複数列の表示ができないようです。
Excelで複数列の表示をまとめて行う関数の使い方は無いでしょうか? >>392
そのまえに数値の上に
てーぶるにある昇順に並べる項目みたいなのはどうやってつくる? >>376、>>377、>>378、>>379
クソみたいな質問にも関わらずありがとうございます!
今はテンプレの稟議書にただ文字入れたり回り太枠で覆ったりして文書作る位しかやったこと
ないので、別シートの数値のsum()やaverage()ができて、印刷範囲の設定、ショートカットキー
をせめて覚えて後はバンバン後輩とかに聞きまくろうと思います笑。 >>372
自力では絶対に無理でした
本当にありがとうございました! 【1 OSの種類 .】 android 8.0
【2 Excelのバージョン 】 Excel for android
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
タッチパネルから列の幅を数字で指定する操作を教えてください
キーボード、マウスは接続していません >>393
スピルかな。
絶賛開発中で、insider版で一度公開されたけど現在は非公開
もう一年すれば出るんじゃいかな >>365
ありがとうございます。いろいろ勉強になりました。 エクセルで図形が「印刷(またはプレビュー段階で)」横長長方形になってしまいます。
例えば複数正円がありとして、全部微妙に大きさが異なります。
正円作成は「シフトキー押しながら」描いているので確実に正円だと思います。
プロパティで
セルに合わせて移動やサイズを変更しない。
を有効にしても全く変わりません。
不思議なのは、ページ中央に配置すると正円を保ち、
左右どちらかに配置すると横に伸びるようです。
これは円じゃ無く四角でもなります。
これはどうしたら直せるのでしょうか?
【1 OSの種類 】 Windows10
【2 Excelのバージョン 】 Excel2010 & 2013 >>402
印刷で図形の縦横比が変わってしまうのはExcelの宿命だそうです
私はあきらめてWordかPowerpointでやるようにしてます >>402
これは?
位置合わせのオプションを無効にする
1.図形またはその他のオブジェクトをクリックし、[描画ツール] の下にある [書式] タブで [配置]
をクリックします。
2.これらのオプションをオフにするには、[グリッドに合わせる] または [図形に位置を合わせる]
チェック ボックスをオフにします。 【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】だけ抜き出しています
よろしくお願いします >>406
=RIGHT(A1,LEN(A1)-FIND("-",A1,FIND("-",A1)+1)) >>407-408
ありがとうございました
無事に出来ました! 【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)
という感じです 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【1】が入力されたセルと、【1,2,3】が入力されたセルを、1が入っているのを理由に同時にカウントしたいです。
シチュエーションはアンケートの複数回答です。
どのような関数が適切でしょうか?
また、当初countif(範囲,"*1*")が適切かと思っていたのですが、これだと【1,2,3】のセルしかカウントされません。
*は0字以上の不特定の文字を表すと見たのですが、なぜ上記の関数では間違いなのでしょうか?
二点、よろしくお願いします >>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 >>413
回答ありがとうございます!
*は一字なのですね。理解しました。
=SUMPRODUCT(ISNUMBER(FIND(1,範囲))*1)
でできました。 【1 OSの種類 】 Windows7
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 可
別のセルに連動させる質問です。
去年から部署移動になりエクセル初心者の状態から少しずつ使える様になってきましたが、
まだまだ使いこなせていませんのでご教授願います。
元々ある作業の進捗などを入力する作業を簡略化と間違い防止の為に、
マクロ等を使って改良したいと考えています。
単独でのドロップダウンリストは作れますが連動が出来ません。
1、まず黄枠の担当者の名前をドロップダウンリストで入力すると、
緑枠の担当者コードが自動で選ばれると同時に、データ作成進捗状況が黄色で作成中となる。
2、次に赤枠の加工理論値を入力すると、青枠の作成日がその入力日で入力されると同時に、
データ作成進捗状況が青で作成済となる。
このような状態に出来れば、少しでも仕事の負荷軽減になるのでよろしくお願いします。
https://i.imgur.com/pMYvSqU.jpg >>417
夜分遅くに大変申し訳ありません💦
早速今日使わせてもらいます。
ありがとうございました offset関数ってどんな時に使うのでしょうか?? 単独では使えなくて、関数の引数にセル範囲を指定するような場合と組合せる。
たとえば入力規則のリストにINDEXと組み合わせた数式を指定すると、
項目数が増えてた場合でも参照先の範囲が勝手に広がってくれる。 オレも選択範囲を可変したい時にしか使った事ないなoffset ソートしてベスト10確認したいときとかに使ってるよ OFFSETはROW()及びCOLUMN()と組み合わせて使うことも常套手段じゃない? 正直使ったこと無い
回答でみると見やすくていいなとは思うんだけど VBAでデータの入力規則のリストを作ろうと思っています
セルをクリックしたら複数のシートから必要なシートの必要な項目をリストにしたいのですが、シートの指定を変数にするとうまくいきません
With Range("D2:D10").Validation
.Delete
.Add Type:=xlValidateList, _
Operator:=xlEqual, _
Formula1:="=Sheet4!$G$2:$G$10"
End With
Sheet4の部分をSheets(i)のようにしたいのですが、やり方を教えてください >>426
Formula1:="=" & Sheets(2).Name & "!$G$2:$G$10" >>427
ありがとうございます!
うまくいきました
感謝です! たびたびすみません
$G$2:$G$10の部分を変数で指定する方法を教えてください
Formula1:="=" & Sheets(i).Name & Range(Cells(j, l), Cells(k, l)).Address
これだとダメでした >>429
jとkに何入ってるか知らんけど、
複数行で指定はできない
ok:
Formula1:="=Sheet2!$B$1:$b$3"
ng:
Formula1:="=Sheet2!$B$1:$D$3" >>430
ありがとうございます
Cells(j, l)
Cells(k, l)
どちらもlは一緒なので複数行ではないはずですが
分かりづらい文字で申し訳ないです >>432
そっちかよ〜
>>431
Formula1:="=" & Sheets(i).Name & "!" & Range(Cells(j, l), Cells(k, l)).Address >>432-433
土下座レベルでありがとうございました!
楽しいやり取りでほっこりできました >>417
昨日試してみたのですが
どうもバージョンが古いので画像の様なアラームが出ます。
あと今年中にはバージョンアップする予定ですが
今のエクセル2003ではうまくいかない様です。
せっかく作っていただいたのですが
今年中にはバージョンアップする予定ですので
そちらの方で使わせていただきます。
https://i.imgur.com/2gVSv3H.jpg
https://i.imgur.com/ZtKE2jC.jpg 2003は無理がある
単なる家計簿に使うならまだしも、複雑な帳票はキツイ
iferror辺りすらないのはキツすぎる
・EXCELonline(無料、マクロ一切使えない)
・goooleスプレッドシート(無料、マクロそのままでは使えない)
・libraoffice(忘れた)
色々無料版とかもあるからガンバレ 質問があります。
A列に1,4,6,9、11,13,14
B列に2,4,7,8,11,15 と入力してあるとします。
AとB列を照らし合わせて同じ数字であればそのセルには着色や枠など同じ数字が使われていることを視覚的にわかるようにするにはどうすればいいでしょうか。
上の例では4,11のセルが着色等されるイメージです。
VBAは使えないので数式や条件付き書式などでやれる方法はないでしょうか。
一つ一つのセルに条件付き書式でも可能でしょうけど実際は数百行もあるので数百も同じ条件付き書式を作るのは現実的ではありません。 >>437
条件付き書式でA1=B1でいいのでは? >>437
条件付き書式
=AND(ISNUMBER($A1),ISNUMBER($B1), $A1=$B1) 説明が下手ですみません。
437の例ではたまたま隣り合ったセル同士が同じ数字になってしまいましたが
実際は行違いで同じ数字があるといった場合です。
つまり隣のセルが同じ数字か?ではなく隣の列の中に同じ数字のセルがあるか?という判定になります。
また、数字とはっきり書いてますが実際は英字と数字の組み合わせになるので>>439のは違うのかと(今手元にデータもエクセルも無い状態です) 編集途中で書き込んでしまいました。失礼しました。
439はnunberという文字を見た限り英字と数字の組み合わせには対応してないのかなという気がします。(今手元にエクセルが無いので確認は出来てませんが) >>440
ごめん、>>442は嘘
countif(A:A,B1)>0
範囲は選んでね countifはアルファベットの大文字小文字判別しないから注意が必要 >>444
ありがとうございます。
countifは使い慣れてるはずなんですが記載の内容で果たして希望通りの結果が得られるのか
いまいちイメージ出来ないため明日会社で検証させて下さい。 ▼━質問テンプレ (出来れば使ってね) ━━━
【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
解決方法があればご教授願います。 >>435
多分青色セルの色がバージョン違いで対応してない
2003で対応してる色に変更すればいける >>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 うちのExcelで日付を和暦表示にしたら
すでに平成の次の元号が表示されたんですけど。
これすでにMicrosoftの日本チームが情報をしいれていて、オンラインで自動アップデートされたから?
ちなみに新しい元号は「乃木」です。
5月から乃木元年。 >>451
無い無い、何かの勘違い
ダミーデータでも入ってるのかと思って試したら平成32年になったわ >>453
事実が証明してる。>>454
著名か?たしかにアイドルで似たのあるな。でもあれは乃木「坂」 >>454
A2セルの入力バーってどうなってる?
https://i.imgur.com/RoPVizu.png
「乃木2年1月1日」ならそれはただのテキスト
「2020/1/1」と入ってたら何かおかしな事になっている >>456
もちろん2020/1/1になってますよ 2019とオンラインでは再現しないし、そんな例もないな
アップデート失敗してるっぽい
再インストールかアップデートのアンインストールで直ると思う ネタだろ
マジだったら関係者の首が飛ぶまでは行かなくてもニュースとかで大騒ぎになっとるわ そんなもん表示形式の設定でどうにでもなる
とマジレス このレジストリで追加できる
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2019 05 01"="元号_元_Gengou_G" そうなっていたのか
元号を追加するウィルスなんてのも作れるのか・・・ >>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)のようにしたほうがよいのでしょうか?
よろしくお願いします ActiveWorkbook.SaveAs Filename:=myPath & Sheets("入力フォーム").Cells(1, 1) & "_" & Format(Date, "yyyymmdd") , _
FileFormat:=xlExcel8 1枚目のシートのa1〜1000に1から1000までの数字が入っています
この数字を別シートの特定セルに、ちょうどexcel→wordの差し込み印刷のような感じで入れたいのですがいい方法ないでしょうか
https://tech.nikkeibp.co.jp/it/pc/article/technique/20090727/1017329/
このページの方法で同じようなことはできますが、いかんせんファイルが重くなってしまい使いづらい次第でございます >>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とかはかなり重い >>471
シート増やしまくると重いんですよね、うちのPCが低スペなだけかもしれませんが >>469の補足です
a1〜1000を範囲選択しつつ、別シートの特定セルを選択した状態で印刷すると、特定セルの位置に1〜1000の番号が入った紙が1000枚出力される、というようなことをしたいイメージです Excelで1000枚差し込み印刷とかキチガイしかやらんよ
普通に1回印刷するだけでも遅いのに無茶言いすぎ1日たっても終わんないよ そんなことない 年末調整の印刷するのに300枚位差し込み印刷したことある VBAでループ回すだけだし時間なんかかかるわけない もしかして1000シートできるってこと?
もしそうなら設計見直したほうがいい。無理 メモリ100MBしか使わなかった
いけるもんやね、スマン
Sub foo()
For i = 1 To 1000
Worksheets.Add
Next
End Sub シート1000枚1回印刷の方がいい
1000回印刷はは地獄 1000回印刷って給料明細とかで普通にありますし・・・ 社員1000人規模の企業は給与計算にExcelは使わんと思う 1000人ならwebに移行しなよ
毎月給料明細なら10万以上かかってるんじゃないか?
俺が使ってるたのめーるはcsvあげるだけで良いから楽ちん >>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列の通し番号が消されて飛んでしまうんです。いずれはサーバに保存します。 >>475です、色々意見ありがとうございます
>>469に貼ったurlのやり方だとシートが1000枚できてしまうため、印刷は1回で済むもののどんなに記入されたデータが少なくても結構な重さになります
なので1〜1000の数字が書かれたシートと印刷用シートの2枚のみがあるファイルを用意し、数字シートから印刷用シートに数字のみ差し込んで印刷できるようにしたら軽いままできるのではないかと思った次第です >>488
やっぱりシート1000枚になるのか
そら重いわ
そうじゃなくて、
・管理シート
1 みかん 100円
2 りんご 200円
・出力シート
IDを入れるセル
上記IDに紐付いたをvlookupで引っ張ってくる
という構成にして、マクロは
・「IDを入れるセル」のIDを変更
・印刷
これを繰り返すだけでいいんだよ
ぱっと作ったけど、大体こんな感じ
https://dotup.org/uploda/dotup.org1808426.zip.html またバカがゴミみたいな処理広めようとしてんのか
Excelはプリンタドライバとの通信速度がクソだから印刷回数を減らさないと遅いんだよ
何をしたらまずいのか全然わかってないな なんで極端バカしかいないんだよ…
50シート x 20回印刷とかにすればいいだけだろ 使用環境によるとしか言えないわ。
印刷回数が増えるとPCとプリンタ間で渋滞するのは事実だし。
例えばうちは複合機に繋がってる端末と印刷専用機に繋がってる端末がある。
前者はIDカードとひも付けで、ジョブが多くてもプリント時に他の人に割り込まれない代わりに一回に20ジョブしか選択できない。
後者は送ったら自動的にプリントされるけど、間に他の人のジョブが入れば当然割り込まれる。
俺は基本的に印刷回数を少なくするマクロしか組まないけど、自分専用のプリンタがあって放置して別の作業やればいいならなんでもいいわな。 仕組みも実務もわかってないバカが、自分が答えやすいってだけのバカ丸出しの理由でクソコード教えるのが迷惑なんだよ
繰り返すだけでいいんだよ、とかアホか。いいわけねーだろ ケースバイケースを理解できないバカが現れた!!
戦う
守る
▶ 逃げる >>489
だけど確かに>>490だわ
>>491
間違いなくこれが正解
俺も給料明細格子状に並べてたわ。自分でやったのに忘れてた、スマン
今なら縦一列で作る
>>492
そう、自分専用プリンタがあれば何の問題もない話
>>493-494
は存在してる意味の無い無能だな 【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を押してもやはり
値の更新ダイアログが出るので、ファイル名やディレクトリなどが間違っているという事は考えられません。
以前は、置換すれば一瞬で数式は更新されていたはずなのですが、なぜこういう事になるんでしょうか? >>496
サーバー名じゃなく、IPアドレスで指定してみては
\\192.168.0.1\nas\A.xlsx
みたいな感じで EXCEL初心者から勉強するのにおすすめの本とかサイトあるでしょうか? 絞り込みリストはINDIRECT、可変リストは
MATCH・COUNTAで作れるけど、可変絞り
込みリストって作れるんでしょうか? >>499
何をしたいか具体的に書いてもらわないと分からない Excel2010のサポートが来年終了するけど
今のうちに2019にしておいたほうがいいんだろうか・・・ 一生使える買い切りアカウントってのがあるらしいけど、あれ個人で買えるの?かなり欲しい >>504
??
サブスクリプションのOffice365以外は普通買い切りだろ?
メジャーバージョンアップは無いので(優待はあっても)アカウントもへったくれも無い
新バージョンリリースは大抵365の方が先だけどな 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 否
【4 VBAでの回答の可否】 否
関数が入っているところに誤って手入力で値に書き換えられていないかを監視したいのですが
関数か値かを識別するにはどうすればいいですか? 手入力セルのロックを外してシートの保護、じゃ駄目なの? >>506
あなたが後ろに立って見てればいい
VBAダメなら他に監視する方法は無い 関数のみもしくはテキストのみを拾うCOUNT系の関数はないですか?
もしくは条件付き書式での色変更設定でもいいです。 あまりスマートなやり方でもないけど、
まるっきり同じシートをコピーしておいて、元のシートとコピーしたシートとの書き換え監視対象のセル同士を照合して
差異が有ればココガチガウと表示する関数をコピー先のシートか、または更に新規のシートに記述 2010には左右のシートだけでなく先頭や最後のシートに移動する
ボタンがありましたが2016や1019でもそのボタンを表示させることは
出来ませんか? Excel2019のOfficeテーマってカラフル、濃い灰色、黒、白の
四種類しかないのですか?
2010のときのような銀のグラデーションのようにしたいのですが。 Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2019 05 01"="令和_令_Reiwa_R" >>506
条件付き書式でISFORMULAを使えばいいと思うが
そんな事より、セルを保護して上書きさせないようにした方がいいと思うが >> 514 Excel2002では、レジストリ書き換えをやっても表示されないのよ 質問です。
例えば
ExcelでA1セルの日付から-30日(一ヵ月前)になったらB1セルが黄色になる、C1セル(完了日)に文字が入力されたらB1セルの色が無くなる
という関数は出来ました。
別シートで期限だけで見れる表を作りたいのですが、
別シートから参照する際、参照の関数がC1セルに入ってしまいB1セルに色が付きません。
C1セルにA1セル以降の日付が入った場合のみB1セルの色付けが解除される関数を分かる方いませんか。
それとも手作業でC1セルに入力するしかないでしょうか。 【1 OSの種類】Windows10
【2 Excelのバージョン】Excel2016
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】否
日付について、例えば「4.1」と入力した時、「04.01」と表示したい
月と日をそれぞれ2桁で表示させたい
※入力ではスラッシュは使用せずドットを使用
表示形式で「00.00」としてみたのですが、日が「10」となってしまいます >>519
それってまずは4.1と4.10を入力の際に区別する必要があると思うんだけど、文字列ならともかく数字で入力するのは無理じゃないかな VBAなら41は04.01 410は04.10と判断できるな 【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 【1 OSの種類】 Windows10
【2 Excelのバージョン】 365
【3 VBAが使えるか】 否
【4 VBAでの回答の可否】 否
最近365にしました。
アイデアって使えないんですか?
マークリボンはあるけど⚡マーク出てきません >>523
=int(a1)<int(a2)
で下線
ちなみにintは時間を無視した日付を表す >>520-522
ありがとうございます
やはり難しかったんですね
各々が入力する様式なので、2桁表示で揃えたかったんです
10日等は当然2桁になるので、1日等が課題でした
mm.ddは入力時にスラッシュを利用しませんか?
早速明日試してみます おまえらほんとExcel好きなんだなぁ。素敵だよ。 Excel2013です。
A列 B列
あ 100
あ 0
い 200
う 0
え 100
こんなリストにフィルタをかけたい
A列う、え、を非表示ただしB列が0以外を除く
(あ、いのすべてと、う、えで0以外をピックアップしたい) >>528
C列で作業列を作ってそれでフィルタ
C2=AND(OR(A2="う",A2="え"),B2=0)
FALSEを非表示 >>527
好き嫌い通り越してもはや属性になってるわ
EXCEL属性 >>519です
>>522さんの方法でできました!
ただdd.mmとする必要がありました
助かりました
ありがとうございました すいません、漠然とした質問なんですがExcelで文字を入力してサジェスト機能で候補を出したりすることは可能でしょうか?グーグルとかで出てくる候補を出してそこから選ぶみたいな感じです。よろしくおねがいします。 >>534
>ただdd.mmとする必要がありました
そりゃそうだ >>536
ありがとうございます。
見てみましたけど難しいですね。しっかり VBAを一から勉強したいと思います。 vlookupで2列の組み合わせは一回で探せるんでしょうか?
やはりいったん2列を組み合わせてそれを参照するべきでしょうか? >>538
重複ないなら&で繋ぐという手も
=IFERROR(VLOOKUP(1,A:B,2,0),"")&IFERROR(VLOOKUP(1,C:D,2,0),"") vlookup(a1&b1,c5:d7,2,false) AAA 123
AAA 456
BBB 123
:
こんな感じでそれぞれ重複はありますが、組み合わせるとユニークになります >>542
それなら>>539はダメだ
作業列使うのが良い
使わない方法合ったと思うけど忘れた >>544
煽りたいだけの無能は韓国に帰って、どうぞ 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
画面上部の「fx(関数の挿入)」を押した先の「関数の検索」欄が機能しません。
普通なら「合計」と入れればSUMなどが出ると思うのですが、「ほかの言葉を使って質問してください。」と出ます。
改善策ないでしょうか。 index matchでできそうな気がしました。ありがとうございます。 >>544
小さな会社にいたときに
事務職の採用で部長が面接担当する人に
「vlookup関数を知ってる人、必ず使えそうな人を採用してきて」、と言ってたのを思い出した。
もちろん必要条件で十分条件ではないが。 vlookup関数は一つの目安としては丁度良い位置にあると思う
>>546
2019で動くけどなー
https://i.imgur.com/VcHNu7z.png
再インストールすると良いかも?
ちなみに俺は10年以上この機能使ってないわ >>544
自分が使わないのと、他人に教えるのに便利は両立するからな
他人が使っているのを理解する必要があることも多いし >>542
indexとmatch組み合わせて、matchのところを配列にしたらできるね >>549
インストールし直してもだめでした
改善要望送ることにします index+matchを使うようになってからvlookupを全く使わなくなったんだけど、vlookupを使ってる人は検索範囲の左側の列から値を引っ張りたい時はどうしてるんだろう? indexmatchより高速vlookupの方が早いから使えるときはそっちを使う。
最近はVBAが多いけど >>555
単純な興味からの質問なんだが、VBAで普通に組むなら多分ワークシート関数のmatch利用が早いんだろうけど、ADO使ってSQL使うと速度的にどんなもんなの? スピードは高速Vlookup→Index+Match→通常Vlookupでしょ
VBAはFindがクソ遅かった記憶がある 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
高速Vlookupとは何でしょうか? 第四引数が1の事じゃないか
ちゃんと二分木探索使うから量が多くても早い Excel for Office 365(Office Insider)
VLookup+FILTER
=VLOOKUP("A",FILTER(B1:D56,C1:C56=16,""),3,FALSE)
FILTER関数
https://support.office.com/ja-jp/article/filter-%E9%96%A2%E6%95%B0-f4f7cb66-82eb-4767-8f7c-4877ad80c759 【1 OSの種類 】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否 】 否
vlookupで検索の型をTRUEにすると「検索値が見つからない場合、検索値未満の最大値」になる
この値を「検検索値以上の最小値」にすることは可能ですか? 帳票を作ったExcelのワークシートをデータ入力用のフォームに転用することにしました。
データを入力するセル以外にロックをかけて入力するセル以外を選択できないようにして入力するのを楽にしようと思っていたら、TABキーを押してもENTERキーを押してもうまく次のセルに移動しません。
具体的にはTABキーの場合はほとんどは上手くいっているのに、1ヶ所だけ同じところを行ったり来たり3回繰り返してから次のセルへ移動します。
ENTERキーの場合は上に行ったり下に行ったり、めちゃくちゃに入力セルを移動します。
帳票自体がセルを小さい方眼状に詰めたものに、セルの結合をすることで体裁を整えた作りになっているので、その辺が影響しているのかな、と思うところもあります。
この場合、必要なセルに順番でうまく移動させる方法はありますか?
フォームを作り直した方が早いでしょうか? >>565
こういうのはタブオーダー(タブキーを押した時の順番)って言う
セルの結合の場合は左上セルがそのセルとみなされる
さらにロックを掛けた場合の挙動は知らない
一番いいのは入力用のセルを用意して、そこからデータを引っ張ってくることかな
こうすれば入力漏れもまぁないだろう
https://i.imgur.com/kWfMYFQ.png >>567
ありがとうございます。
アドバイスの件含めて色々勉強したいと思います 宅急便の料金のように重さ・サイズを入力すると自動に金額が返されるような表を作りたいです
vlookupで検索の型をTRUEにすると「当てはまる検索値が見つからない場合、検索値未満の最大値」が返される
この値を「検索値以上の最小値」が返されるにはどの関数をしたら良いでしょうか? >>570
下のようなテーブルを作っておいて
75という数値を入れると「検索値以上の最小値」である80サイズの料金850円が返されるような感じにしたいです・・
料金表
サイズ 金額
60 700
80 850
100 1,000
120 1,200 >>572
絶対に重複しないなら方法はある。
matchで戻り値に+!足す
重複の可能性があるなら並び替えるしかない。それでも無理ならvba >>572
テーブルに、75 850 とか小刻みに追加しとくのは? 作業列つかって料金表をアレンジしそこから検索するしかないべ 料金表を降順にしとけばMATCHとINDEXでできる MATCHの第3パラメータを-1にすれば、検査値以上の最小値で検索できるんだけど >>573-577
みなさま有難うございます!
まずはテーブルを作って、荷物のサイズを入力するだけで 自動的に料金がかえされるものを想像しておりました・・
MATCHとINDEXという関数は数値を入力するだけで数字が返される関数ではないですよね?
vlookupと組み合わせるってことでしょうか?((((;゚Д゚))))))) >>566さんのINDEXとMATCHでいけますね
凄い便利だ・・
有難うございました! >>578
indexを使うならVLOOKUPは不要
ただ降順にするなら、最後を-1にしてやれば検索可能だよ
何列目のところをmatchで都道府県ごとのテーブル作っておけば、都道府県の検索もできるし 【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)
の場合とだと、データ量が増えた際にどちらが軽いでしょうか? >>582
そこまで出来てるなら自分で増やして試せばいいじゃん >>583
処理速度を比較する方法が分かりません
ストップウォッチ機能みたいなものがあるのでしょうか? >>584
目視
10万行ぐらいにすれば差はわかるっしょ >>584
ストップウォッチで測ってみればいいだけだろ… 【1 OSの種類 】 Windows7
【2 Excelのバージョン 】 Googleスプレッドシート
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否 】 否
5,421,700(仮) と入力されているセルから、(仮) 以外の文字列を別のセルに取得したいです
どういった関数を使用すればいいのでしょうか。
LEFT関数も検討しましたが、15,852,200(仮) といった文字列もあるため、単純に左から何文字では取得できませんでした
「右から3文字」以外と指定すればできるかと思いますが、関数がわかりませんでした
皆様何卒、よろしくお願いします。 =SUBSTITUTE(A1,"(仮)","")*1 >>588
カッコ仮を消せばいいだけなら
=SUBSTITUTE(A1,"(仮)","") >>589
おおお!!!
こんなに早く正確に教えていただけるとは感激です!!!
誠にありがとうございました!!!
このご恩は一生忘れません!!!!!! >>588
3文字減らす
=LEFT(A1,LEN(A1)-3) >>590
ありがとうございます!!!
>>592
ありがとうございます!!!
右から3文字消す方法は汎用性が高いので、何度もお世話になると思います!!!
本当にありがとうございます!!! Googleスプレッドシートって、どれぐらい互換性あるの?
Excel2019で追加されたSWITCH関数とか >>594
使ってみたら?
SWITCH関数は合った気がする 皆さん知識凄いですね。
どうやって勉強してるのですか? 半分趣味、半分仕事で20年ぐらいぼちぼちやって、なんとなく覚えた
仕事と言っても、手作業をちょっと楽にする程度のことにしか使ってないので、ちゃんと勉強したわけじゃないから
いまだに関数の使い方とかいちいち検索しないとわからないのがけっこうある 関数で使用頻度高いのなんて20個くらい、凝ったことでも40個も覚えれば大抵何とかなる
それだけで毎日毎週毎月やってる作業が数秒で終わるようになると考えると自然と覚える 空いた時間でもうちょい良くできないか?と思うようになると新しい事を覚えることができて、
その知識で更に新しい事を・・・ 業務改善のあるべき姿の典型みたいな素晴らしい住人が住み着いたスレだ google スプレッドシートってすごいんだな
2000より使えそう 大事なのは、紙ベースの帳票でキレイに見せることでなくて、
紙出力は二の次で、Excel内で管理しやすいようにデータや数式を揃えることなのかと。 >>602
2000はもう無理がある
>>603
キレイなデータを作っておけば印刷用のデータを作るのは瞬殺なんだ >>602
重くなる関数はgoogleスプレッドシート使ってるわ
ローカルで実行するとPCがフリーズするレベルでも処理出来るから便利 縦横10×10ある表使って、
例えば、3行目を指定したときに
3行目の10個の数字(数字はランダム)中から「8」がある箇所の「列」数を取得したい
lookup
hlookup
だと上手くいかないんだよな Excelに強いって事務系の仕事ではまあまあ武器になるよね。 ある求人広告にエクセル使える人(IFとVLOOKUPが使える事)って書いてあったw 基本的な事務仕事をするうえでその辺に境界線がある気がする 質問失礼します。
テンプレも含め画像の通りなのですがどうするのか良いでしょうか...。
http://imgur.com/gallery/X4yKbJu Excel2013
win10
D2=IF(B2+C2>100,B2+C2,"")
さらに条件付き書式で
D2に数字が出たときA2を塗りつぶしたい
条件を D2>0 にするとなぜか常に塗りつぶしになります。
どうすればよいのでしょうか? データ用のシートにデータをフォームから貼り付けたときに、データ番号というのか、データに連続する番号を振りたいのですが、色々調べつつやってみたのですが上手くいきません。
フォームからデータを貼り付けるマクロに、どのようなコードを追加すれば上手く連番で番号が触れるでしょうか?
番号は1、2、3....みたいな感じなんですけど >>618
ぬおおおできました!!!
>>617 さんのはちょっとわかりませんでしたが、ありがとうございました。 A1セルに数値が入力されると空欄のB1に"要入力"と
表示させ、かつB1に手入力も可能にしたいです。
何か方法はありますでしょうか。 >>620
B1=IF(ISNUMBER(A1),"","要入力") ヒッポリトテーブルってややこしい。
理解するこつあはありますか? >>621
> >>620
> B1=IF(ISNUMBER(A1),"","要入力")
Excelで試したら確かにそうなりましたが何故そうなるかが分からないなー。 >>627
> >>621
>
> > >>620
> > B1=IF(ISNUMBER(A1),"","要入力")
>
> Excelで試したら確かにそうなりましたが何故そうなるかが分からないなー。
追加
自分の中ではA1が数値なら空欄に、それ以外なら要入力とするになるんじゃないかなと思います。わかる方教えて頂けると助かります。 ▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel365
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
http://imgur.com/XaiV4xH.jpg
このような表があります。
下の表にロットNOを打ち込む度に出荷日が小さい順に表示させたいです。
D27が4/1、D29が4/2となるような感じです。 空白のセルに以下のように入力できるようにするにはどうしたらよいでしょうか?
○○11A××
○○=固定の文字
11=任意の数字
A=五十音のどれか一文字
××=任意の数字
イメージとしては、「11299」と入力すると「○○11い99」と表示される感じです >>631
LEFT、MIDで文字列を分け各々の対応表からVLOOKUPで検索し文字列結合 >>621
> >>620
> B1=IF(ISNUMBER(A1),"","要入力")
逆じゃないですか?
B1=IF(ISNUMBER(A1),"要入力","")
こっちじゃないですかね? >>632
なんとなくわかるようでわからない・・猿でごめんなさい >>631
例えばA1に「11299」入力するとB2に○○11い99と表示されるイメージでいいのかな? >>631
>>636と数字は5桁固定前提で書くと
3桁目の数値とひらがなに対応表があるとして
B2="○○“&LEFT(A2,2)&VLOOKUP(MID(A2,3,1),対応表範囲,2,0)&RIGHT(A2,2)
とかでどうかな?
スマホから書いてるんで誤字あったら適当に直してw
かな部分がランダムなひらがなだとするとまぁまぁ面倒な式になるよ >>640
やっぱ無理ですか…
INDEX SMALL ROWとか組み合わせたんですが難しいです
VBA使えばいけますかね? >>630
配列使えば出来ないことはないけど
素直に VBAにした方がメンテナンス性は良いだろうね >>641
VBAあれば出来る
値が更新されたことをworksheet changeで感知して
更新された行のBからGまで値が入ったら
下の表をソートする感じ >>642
ロットNo.と出荷日の組み合わせがユニークならmatchにminとロットNo.を配列でぶち込んでindexで拾えばできるね
但しデータの数が多いとかなり重くなる >>642-646
できれば数式でなんとかしたいです
重くなってもいいので >>648
悩みましたがOKです
出来ればそのままが良いですが… >>649
たとえば
ロットナンバー1000、出荷日4/1
ロットナンバー1001、出荷日4/1
もありますし
ロットナンバー1000、出荷日4/1
ロットナンバー1000、出荷日4/2
もあります
1ロット100個の内10個が4/1出荷、20個が4/2出荷
のようなイメージです ロットナンバー1000、出荷日4/1
ロットナンバー1000、出荷日4/1
は?一日2回出荷 >>652
そうですね
2回出荷ですが、E27はSUMPRODUCTでロットナンバー1000かつ4/1かつ工程Aを合計した数です
ピボット使えと言われたらそれまでですが、数式でお願いしたいです。 ロットnoと製品名はイコール?
1000でいいいはある? >>654
無いです
ロットナンバーに対する製品は1種類です >>628
>>620で書いた者です
数式は入力規則に入れれるのでしょうか?
今日試そうと思ってたのですが他業務で
EXCELさわれなかったもので…。 >>638
ありがとうございます
頂いたアドバイスをもとに条件を簡素化して再考しましたが、なぜか思い通りにいきません
添付ファイルで自分の想定では「aい678」となるはずなのですがエラーが・・
ちなみに最後の任意の数字(このファイルだと678)は1~999のいずれかになることを想定しているのですが、
RIGHT(A1,3)という指定だと右から3ケタを返すことになりますよね?
1ケタ~3ケタすべてに対応した書き方ありますでしょうか。
https://dotup.org/uploda/dotup.org1817872.xlsx.html 入力するのはK列な
下に追加することは不可能
工程はABを真似して適当に増やしてくれ。列を挿入しても大丈夫 >>656
今からgoogleSpreadsheetでも使え
無料で利用できるしこれぐらいなら互換性がある
あと入力規則に入れる事はできない セルにシート名を入力したいとネットで調べてこの関数を入力しました
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]", CELL("filename",A1)))
うまくいったのですが、ブックを開いて何も変更していないのに閉じようとすると
保存しますかと聞かれます。
自動保存とかではなく普通に変更した時だけ聞いてくる様には出来ないでしょうか?
よろしくお願いいたします。 >>658
ありがとうございます!
なるほどロットナンバーと日付のシリアル値を足す!
良いアイデアですね!
DATEVALUEでもできそうです!
本当にありがとうございました! >>661
揮発性関数というものに分類される
https://docs.microsoft.com/ja-jp/office/client-developer/excel/excel-recalculation#volatile-and-non-volatile-functions
now()みたいなもんで、開いて閉じるだけでも上書き保存を聞かれるようになる
回避方法は、自動計算を切るぐらいしか無い。自動計算切るとこっちのほうが間違い増えるからオススメはしない
cell関数の代わりにvba使っても回避できる >>664
どうもありがとうございます。
そうゆうのがあるんですね 勉強になります。
それではVBAで探してみます。 >>663
重要なのはH列ですね
なんとか吸収して明日には活かしたいと思います
本当にありがとう >>657
やっとできた・・leftで抽出される時って文字列扱いになるんですね・・ ボタンにマクロを登録してあるのですが
そのボタンが使えないバージョンのExcelで
ボタンの代わりにマクロを実行する一番簡単な方法はなんですか? >>670
VBE起動しマクロの実行
でもボタンを作り直せば大丈夫だと思う 【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 vlookupの範囲選択の指定で、欲しい答えの列を一番右にしないケースってある? >>514
和暦は表示されても「元年」と表示されないのよ?
令和元年5月1日 >>675
名前付き範囲を検索とか、列によって数式を変えたくない時 昨日特定のセルにシート名を入力で質問させてもらった者です。
調べたVBAをVisual Basic Editorの入力したいシートにコピーしたのですが、
まったく反応しません
どこが問題なのでしょうか?よろしくお願いいたします。
入力したコードはこれです
Sub A1セルにシート名を取得()
Range("A1").Value = ActiveSheet.Name
End Sub >>678
マクロ走らせたらA1セルにシート名が入る、というコード
君が何をしたいのかが分からない ここで質問する内容でなかったらごめんなさい。
エクセルファイルオープン時に、外部DBと連携してデータを取得する
動的エクセルファイルを作成しました。
このエクセルファイルを、VBSでオープンしたいと思っています。
手動でエクセルをオープンした際には、
バックグラウンドクエリが実行され、DBから情報を取得してくれるのですが、
VBSでオープンした際には何故かバックグラウンドクエリが実行されず
DBから情報を取得できません。
VBSの書き方の問題か、エクセル側の設定の問題か切り分けできず、
ここでご質問させていただきました。
もし分かればご教示いただけますと助かります。。。 >>681
auto_openのマクロは無効
workbook_openのマクロは動く
auto_openのマクロは、オープンしたあと
Workbooks("xxx.xls").RunAutoMacros Which:=xlAutoOpen >>682-683
VBA、、、ありがとうございます。
あの、VBAでDBクエリを実行するようなコマンドってありますか。 >>681
>>684
VBAにクエリデータを再取得するモジュールを追加し、
VBSでそのモジュールを実行するよう書き加えたら解決しました!
ActiveWorkbook.Connections.ODBCConnection.Refresh
ありがとうございました! vlookupなどの関数で他のブックを参照していますが
絶対参照になっていて場所が変わるとエラーになります。
カレントフォルダを相対参照するにはどうしたらいいんでしょうか? すいません、カレントじゃなかったです。
C:\user\xxx\xxx.xls
C:\user\yyy\yyy.xls
C:\user\zzz.xls
こんな場合で\userが変わってもリンクしたいです >>686
メインのブック、参照するブック、と分かれるとして
この2つは常に一緒のフォルダかなにかに入ってるの?
それとも参照するブックだけ移動する? メインがxxxで、他を参照します。
\user以下が一式になりますが
\user\001\にしたほうがいいですか? EXCELって相対パスで入力しても保存すると絶対パスに書き換えられるの?
2019でそういう挙動になたけど、前からだっけ
だとしたら>>687、indirect使わないと無理かも 失礼します。
データの集計で、空欄にアスタリスクいれてたら、ワイルドカードとして扱われて、置換できなくなりました
どうにか、0に置換する方法はありませんか
よろしくお願いいたします >>690
その通りです。
例えばxxxのA1に入力
=[yyy.xlsx]Sheet1!$A$1
としても、保存すると
='C:\user\001\[yyy.xlsx]Sheet1'!$A$1
となって困ってます。 >>630です
http://imgur.com/8ghP7TR.png
画像のB27だけは手入力で、B28から下を自動で入力したくなりました
B列にロットナンバーを入力しきって最終出荷日を超えるとD31の様にエラーが出ます
もしD31にエラーが出た場合、B31をB30+1する事は可能でしょうか?
B31 = B30
D31 = NA()
B31 = B30 + 1
これを順番に計算できれば良いのですが… ついでにwordの差し込み印刷でも外部ファイルは絶対パスになります >>692
めんどくさいな、これ
indirectしかないわ
b1にユーザー名いれて
=INDIRECT("'C:\"&b1&"\xxx\[xxx.xlsx]Sheet1'!r1c1",0)
みたいにするしかない レスありがとうございます。
>>679
シートの名前を変更すると同時にそのシートの特定のセルを同じ名前にしたいと思っています。
今まではそのセルに
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]", CELL("filename",A1)))
を入れていました
>>680
すみませんイベントは確認してませんでした。
今日別のコードを標準モジュールに張り付けてみました
Function RSN()
RSN = ActiveSheet.Name
End Function
で対象のセルに=RSN()
と入力したらシート名を表示してくれました。
しかしシートをコピーしてシート名を変更しても変わってくれず
そのセルでエンターを押さないと変更してくれません。
シート名を変更すると瞬時に変更される方法があるのでしょうか?
素人相手で申し訳ありませんがよろしくお願いいたします。 VBAをマスターしたいけど難しいそう。。。
ここいる人でVBAをマスターして使いこなせるようになってる人はどれくらいの期間かかりました??
因みにプログラミングの知識はありません。 >>697
>で対象のセルに=RSN()
>と入力したらシート名を表示してくれました。
>しかしシートをコピーしてシート名を変更しても変わってくれず
>そのセルでエンターを押さないと変更してくれません。
※最後はF2→enter
ユーザー定義関数の再計算のタイミング変だな
この後F9で再計算しても値が更新されない
この挙動は知らなかった
しかしこれ、なんらかの方法で揮発性関数にしたら結局cell()関数使うのと一緒になるような気がするぞ >>699
レスありがとうございます。
やはりそうですか
きっかけが必要なんですね
なんとなくそんな感じがしてました。
例えばシート名を変更してそのシート内に何か変更があればというifをつければいいんでしょうか? >>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(),"") >>701
夜分遅くに申し訳ありません
早速会社で試してみます
ありがとうございました Function RSN()
Application.Volatile
RSN = ActiveSheet.Name
End Function >>697
> シート名を変更すると瞬時に変更される方法があるのでしょうか?
なんか負けた気がするけど…
Function RSN(Dummy As String) As String
RSN = ActiveSheet.Name
End Function
ってやってA1に
=RSN(CELL("filename",A1))
って入れれば変わる
とりあえずCELL関数を呼出してればいいみたい 1
2カレー 4
3
4印刷 2
5ラーメン 8
6
7
8印刷 5
↑は例です。
VBAでカレーの下の印刷ボタンを押したらカレーから印刷までの行を印刷、ラーメンの下にある印刷ボタンを押したらラーメンから印刷までの行を印刷といったようにさせたいので
カレーの横にカレー用の印刷のある行、カレー用の印刷の横にカレーのある行を(VBAではなく)エクセルで自動的に出したいです。
ただカレーやラーメンといった名前や、間のセル数は日ごとに代わります。
Match関数を使って範囲を変数で指定できればできそうなんですが、行き詰っているのでやり方を教えてください。 >>704
揮発性関数を引数として取れば何でも良いのか
=rsn(NOW())
ちなみに揮発性関数以外はNG
=rsn(sum(1))
で、この手法最大の問題は
そもそも>>661の
>ブックを開いて何も変更していないのに閉じようとすると保存しますかと聞かれます。
この問題が再発して何の意味も無いという点
>>705
かなり変な設計だけど大丈夫?
やりたいことを言ってくれれば設計からやるけどな
とりあえずボタンがフォームかactivexか教えて欲しい >>706
ありがとうございます。
ボタンはSelectionChangeを使って印刷という文字列の入ったセルをクリックしたら、という感じにします
なんとか自分で作ってみたいので、お気持ちはありがたいのですがお知恵だけ拝借出来たらと思います。 >>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 >>708
わざわざ作っていただきありがとうございます
自分の知らないやり方がいっぱいあるので、勉強させていただきます 2007です
キーボードの十字キーをおして選択しているセルの移動をしていたのですが
それが動かなくなり、シークバーの移動に変わってしまいました(エクセル再起動後も)
どうしたら戻せますか? 答えにたどり着きました
現在Scroll lockキーを探し中です 辿り着いてよかったね
ノートだったらFnキー押しながらとかあるからね すいません
EXCELに関する質問じゃないんですがよろしいでしょうか
画像(図面)に文字とか線とか入れるのにエクセルを使ってます。
まずエクセル開いて画像を挿入。そこからオートシェイプで線を書いたり文字を挿入したりしてます。
しかしこれだと○を書いたつもりが印刷すると歪んでたり多く線を引いたりするとすごく重くなります。
これと同じような作業をするのに何か便利なソフトはありますか?
スレ違いを承知でお伺いします。 >>714
PhotoshopかIllustrator >>714
・googleSpreadsheet
ずれるかどうか知らん
・gimp
>>715の言ってるソフトのフリーソフト。互換性は低いが0ふからファイル作るなら問題はない
・パワポ
テーブルはEXCELのデータコピペすればらくちん >>714
図形機能がexcelと同じpowerpoint、wordは縦横比狂わないよ >>701
ありがとうございます!
アクティブになった時を使わせてもらいました。
シート名さえ確認すればあとはほったらかしで次のシートに行けばいいだけなので、自然な感じで使えそうです!
本当に感謝しております
>>704
>>703
レスありがとうございます。
確かに瞬時に変わるので素晴らしいと思いましたが、やはり変更していないのに保存しますか?と聞いてくる問題が出てきますので、せっかく考えて頂いたのに残念ですが見送らさせてもらいます。
しかしこういうコードの使い方は覚えておいてまた他の事に活かす様に記憶しておきます。
皆さんありがとうございました。 質問です。よろしくお願いいたします。
ある名簿シートの、電話番号の列に、電話番号の数字以外に、
たまに、"(実家)"とか"(職場)"などの文字が入っている場合があります。
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行目をどういうコードを書けばいいのか、教えてください。 >>719
https://vbabeginner.net/vbaで文字列から数字のみを抽出する/
これを使って出力時にアポストロフィを頭につける >>715-717
ありがとう御座います
gimpはよく使ってるのでそれで試してみたいと思います
パワポpcに入ってないんだよな… >>693
お礼遅くなって申し訳ありません
おかげさまで解決できました
ありがとうございます A1~A7セルに=today(),=today()+1・・・と今日を起点に一日ずつずれた日を「〇月〇日」という形で表示し、
VBAで入力規則のリスト表示にして必要なところに表示していこうとしています
リストを作った先の書式を設定しないと日付が文字列に変換されてしまいますが、仕様上書式はいじりたくありません
ExcelでもVBAでも構いませんので、「〇月〇日」という日付の書式を「〇月〇日」という文字列に変えるとか、いい解決方法はありませんか? 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Googleスプレッドシート
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
グラフを挿入しようとしたら、画面右側に
グラフのカスタマイズのウィンドウは表示されるものの
「決定」のようなボタンアイコンが出て来ません。
どのようにしてグラフを挿入すれば良いのでしょうか。 >>725
挿入→グラフ
でグラフが挿入されている
E10セルなので、もしかすると画面外にあるんじゃないか >>726
ご名答。
表示→固定にしていて画面外に表示されていました。
ただ、グラフを表示させたい場所が行固定した行の上側に当たるところで
どうやっても固定行の下にしか配置できません。
上側に配置するにはどうすれば良いのでしょうか。 724ですが自己解決しました
ありがとうございます >>728
なんだこの動作。色々試してみたけど無理っぽい
カメラ機能なら行けるんだけど無かった 【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列には同じボタンが並んでいるため、
クイックアクセスバーにマクロを登録ではできないと思いますが、ほかになにか方法はあるでしょうか? application.callerを使っているからだめでは? 最近エクセルのアイコンが変わりました?
先日新しいブックをつくったら、横長で白地の多いデザインになっていました >>731
>E列に文章が合成される数式を入れました
この時点で改行消せば? Excel 2019でセル内に絵文字を入れると
フォントが勝手にSegoe UI Symbolに変わるのは2019の仕様ですか?
2016ではならないです 昔から、書式が勝手に変わるのはエクセルの仕様。
その都度、やり直す。 コピペではないです
例えば くもり を変換して絵文字で入力しようとすると
雲だけの絵文字☁は書式は変わらないのに
雲に隠れた太陽⛅の絵文字の方はSegoe UI Symbolに勝手に変わるという状況です
2016の方はそういう現象は起きないです vba(プログラミング)初心者です
ユーザーフォームにページを作ってページ毎にテキストやリスト、チェックの内容をセルに突っ込むマクロを作っています
コマンドボタンクリック
range("a1").value=textbox1.value
range("a2").value=checkbox1.value
...
range("a10").value=listbox4.value
えんどさぶ
こんな感じで長ったらしく手打ちで書いているのですがもっと簡単に処理するテクニックなどありましたら教えて下さい 731です
>>732
やはりだめですか。D列の押したいボタンがあるセルを選択した状態でマウスで
クリックではなくキーボード操作でなんとかならないかなと思ったんですが・・・
>>734
説明不足でした。文章自体に改行はなく、エクセルのセルをコピーした後ブラウザや
テキストエディタなどにペーストした際に入る文末の改行をなくしたい、という意味でした。 >>739
MS IMEの原因?googleIMEではそもそも
>雲に隠れた太陽
これが出てこなかった
>>740
>ユーザーフォームにページを作って
ページってなんだ?
>もっと簡単に処理するテクニックなど
配列に入れて処理すればいいけど、多分対して変わらないと思う
Sub foo()
arr = Array("あ", "い", "う")
For i = 0 To UBound(arr)
Cells(i + 1, 1) = arr(i)
Next
End Sub >>741
セルをコピーせずにvalueで取ればその改行は無く成ると思う
A1セルの内容はこんな感じで撮れる
foo = cells(1,1).value iPadのExcelで入力した一覧を、同じiPadのWordに差し込み印刷ってできますか?
もちろんプリンタはAirPrintに対応しています。 すみません,質問させてください。
【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と表示される
というふうにしたいです。
わかりにくくてすみません。よろしくお願いします。 >>745
既に数値の入っているB1セルには無理だな
C1とD1セルを使うとして、以下
C1=105
D1=A1-C1+IF(A1<C1,B1,0) >>746
ありがとうございます。
それだと,C1=98のときにD1=2になりませんか?
最初はA1の数値だけが減っていって,それが0になったら,B1(D1)が減っていくとしたいのですが… >>747
98の時は102にしたいの?
それなら
D1=A1+B1-C1 >>747
あぁ、A1もB1それぞれの結果を出したいのか
C1=105
A2=MAX(0,A1-C1)
B2=MIN(B1,(A1+B1)-C1) 質問です
A2に数字を入力した時に5以下ならB2に何も入れずに、それ以上の数字ならB2に表と入力されると同時に、何も表示してなかったB1に裏と表示させる関数またはvbaなどありますか?
同じ行だけだと
=IF(A2<5,"","表")あたりで出来そうなのですが、上の行にも反映させるのが分かりません
ちなみに5以上が連続で続く事はありません >>750
B1 =IF(A2<5,"","裏")
B2 =IF(A2<5,"","表") >>751
早々にレス頂きありがとうございます。
自分の説明が不十分だったのですが、
行は何行もあって、しかも表(5以上)が来る行が偶数行だと限らないのでこの式ですとB3やB5に5以上が来た場合、裏になってしまう様な気がしますが… >>752
説明不足ですみません
例えばB列に
2
6
7
と5以上が連続で来ることはないと
いう意味でした >>754
>>753
BではなくAの間違いでした
すみません >>754
B列と書いてるけどA列のことと読み取って
A列に5以上の数字が1つ以上あればB1の値が"裏"になれば良いの?
それとも、
A2の値が2の時、B1,2の値はブランク
(A2の値が5以上ならB1は"裏"、B2は"表")
その後にA3に6が入力された時、B3の値が"表"、B2の値が"裏"
その後にA4に仮に3が入力された時、B3,4の値がブランク
ということ?
書いててよく分からなくなってきた >>756
説明不十分で申し訳ありません
BはAの間違いです
例えば
A列 B列
2
1 裏
6 表
1
4
の様な感じに出来ればと まだわからん
こういうこと?
AB
1
1裏
6表
1
1裏
6表
1裏
6表
1
1
1 >>758
はいその様な形です
本当に夜遅くまで申し訳ありません💦 >>759
B1 =IF(A1>5,"表",IF(A2>5,"裏",""))
B2以降、B1をコピペ 【1 OSの種類 .】 Windows7・10
【2 Excelのバージョン 】 Excel2010
A1に
シートXYZのD14の値が空欄なら空欄
シートXYZのD14の値が何かしたら文字が入ったらその文字を入力する計算式
教えてください
※
A1とD14は別シートです if(xyz!d14="","",xyz!d14) >>762
うおおおおおお
解決しました
ありがとうございます カッコがなぜか一つ多かった
ミスってしまった
Excel難しすぎます 書式で年月を元号表示してるんだけどいつこれ改修されるの?
win10x64 1809
Excel 1903(ビルド11425.20204 クイック実行)
office365 >>760
ありがとうございました!
何度も申し訳ありませんでした。
本当に助かりました。 >>765
書式で令和を表示するだけなら >>514 A B
櫻井 あ
松本 か
二宮 さ
櫻井 た
松本 な
二宮 は
のようなデータシートがあるとして、
別に用意した「櫻井」シートの特定のセルに「あ」が入力され印刷→「あ」が削除され「た」に書き換わり印刷
これを松本・二宮についても同じように行いたい場合どのような方法が考えられますでしょうか。
VBA使用可能です。 ズレてる気がしますがB列にひらがながあるイメージです >>768
For r = 1 to 6
シート名 = Cells(r , 1)
Worksheets(シート名).Range(A1) = Range(B1).Value
Worksheets(シート名).PrintOut
Next r >>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 >>760
何度もすみません
実際にこのまま入力してみたのですが、一行上の裏の表示には連動されなかったです。
Excelのバージョンか自分の入力間違い等でしょうか?
バージョンは2007です。
申し訳ありません >>771
ありがとうございます。
>>771の方は理解でき、>>771の方だけを別ファイルで実験してみてうまく行ったのですが、>>770がよくわかりません・・
これは「櫻井」〜「二宮」の別シートを作るためのコードということですか?
要は事前に細かく作り込んだ「櫻井」シートを用意しておき、そこにはには一覧表の櫻井に対応するひらがなを入れ、同じく「松本」シートには一覧表の松本に対応するひらがなを入れ・・ということをやりたいわけです。
わかりにくくてすみません。 >>773
会社のエクセルでは表しか出なかったのですが
家でLibreofficeに入力すると出来ました!
もう一度会社で入力してみます。
申し訳ありません >>773
何度もしつこく申し訳ありません
Libreofficeで試して気が付いたのですが、実際会社ではA列ではなくV列で、B列ではなくC列を使用して、数値も0.4を境にしています。
それでC列に
=IF(V1>0.4,"表",IF(V1>0.4,"裏",”))
と入力してV列に数値を入力すると、表しか出てきません。
列順が逆になるとこの関数を変えなくてはいけないしょうか? >>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 >>776
式をよく見てみ
V1じゃなくてV2
もしかして、うまく出ないって言ったときもB1とB2を間違えて入力したんじゃないの? >>778
間違えていました
お恥ずかしいかぎりです。
お手数をお掛けしまして申し訳ありません。 【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ワークブックA(xlsm)とワークブックB(xlsx)があり、Bの特定のシートのセルをAの末尾にワークシートを追加して位置を指定してペーストするコードを組みたいのですが。
条件は
・AとBはファイル名やパスが変わることがあるため、直接指定はできない。
・オートフィルターと可視セルコピーを使っているため配列の使用ができない。
・書式情報を保持するためにBを開いたままAに貼り付ける必要がある。
AからBを開いてコピーする部分まではできているので、変数宣言とペースト部分だけでもサンプルコードをみせて頂けたら。 >>780
出来てるヤツを貼ってくれないと変数宣言も出来ないよ エクセルでデータベースを作るとして、データ格納用のシートとデータを管理する(集計したり加工する?)シートを分けたいと考えています。
管理用シートには関数を使って複数の条件でしぼり込んだデータを表示したいと思っています。
その場合に、検索範囲を例えばA1:A300とするのとA:AとするのとではCPUにかかる負荷が違ってくるものと推察します。
似たような関数を組んだセルが60くらい並ぶ仕様を考えているので、かなりの負担がCPUにかかるのではないかと思っています。
ちなみに、A:A300と書いたのは、300くらいで5年分のデータの量になるので書きました。
5年経ったら、関数を書き換えてA:A600とかにしようかな、という心算です。
ただ、何年かごとに関数を書き換えるのも面倒ですし、できたら作ったときに完結しているものがいいなと思い、A:Aという書き方も考えましたが、やはり計算時間がかかりそうに思いまして、質問させていただいています。
オフセット関数というものを使うと、検索範囲の指定を自動化できると聞きましたが(よく分かっていませんが)、それだとA:Aと書くのと違うのでしょうか? 質問です
シート1のデータをシート2に自動的に抽出して表示したいです
条件に合う列のデータを自動的に。
今はフィルターとマクロでやってますが
それらを使わず関数でやることは可能でしょうか?
フィルター関数というのがあると聞いたのですが、社のオフラインパソコンでは
探しても見つかりませんでした >>782
A:Aで指定しても最終行が300行なら、EXCELは内部的にA1:A300みたいに扱うから気にしなくて良い >>785
可能と言えば可能だが止めておいたほうが良い
死ぬほどめんどくさい
ABCDE列の内、ACDが条件に合致するとすると
作業用シートのA1、C1、D1に1、2、3と入れる。max()を使う
後はsmall()で取得していく >>787
ありがとうございます
調べてみます
マクロ使わないで済むなら試してみます >>782
パソコンのスペックしだい。
あと計算を自動から手動に切り替えたら。 >>789
自動で都度計算されてしまうものだと思っていましたが、必要なときにだけ再計算して表示を更新するようにすることもできるんですね。
それは知りませんでした。
ありがとうございます。
調べてみます Excelを用いて、ゲームのイベントの今までの傾向から次に来るイベントの種類や日程を予測したいです。
今までのデータを、イベント名、イベントの種類、イベントタイプ、開始日程、終了日程の
行を作って全て入力しました。ここから次にくるイベントの種類やタイプなどそれぞれの予測が出るようにしたいのですが、それができる関数やマクロはありますか?
ちなみにイベントの種類は4種類、タイプも4種類の中から選択という形で、毎回順番に出る訳ではありません。
もちろん予測なので外れても問題はないのですが何となく分かっているだけでもかなり違ってくるのでそういう方法があれば教えていただきたいです。 >>791
フィルタかけて目視ぐらいしか確認方法ないような・・・ >>791
Select Caseステートメントをネストさせ予想するしかないんじゃ? コンピューターによる予測というのは、まず人間が法則を発見して、それをプログラミングや関数に置き換えることによって可能になる物
法則がまったくわからない場合は、たとえばグラフを書くなり視覚化して目視で推測するぐらいしかない
その「法則を発見する」段階までコンピューターにやらせようというのが、今研究されてるAIの機能の一つで、まだ実現は遠い
余談になるけど、スマホアプリのイベントは中の人が前日や当日に急に決めることがけっこうあるので、予測するのは不可能に近い >>791
無いと思う
自分でフィルターかけて表示して
その数値見て傾向を自分の頭で考えるぐらいじゃないのかな >>791
年何回イベントが開かれてるかという平均や
グラフは作れるでしょ
イベントの種類ごとの年間件数
春夏秋冬で分けたときの数値もだせるし
テーブルつくってやれば昇順とか消したりとかで後は自分で数えるだけ >>791
イベントカテゴリ毎に開始日付を最小二乗法使って予測すればok
期間は単純平均で十分だろう >>797
質問の内容からして
データーを取って入力して答えを出すまで面倒な質問が山ほど来る気が 791です
皆さん回答ありがとうございます。
フィルタで目視の方法と最小二乗法を用いて予測したいと思います
縦軸開催回、横軸日付で近似曲線出したあとFORECAST関数使って出してみたらいけました!
他にも良い方法があれば教えていただきたいです。ありがとうございました!! 勉強不足で申し訳ないが教えて下さい。
Aというブックに「小麦、大豆、りんご」と入力されたセルを作り、Bというブックで参照させるときに
小麦
大豆
りんご
と改行させて表示させたいです。
よろしくお願いします。 SUBS TITUTEで「"、"」を「"&C HAR(10)&"」に置き換えて前後にもCONCATEN ATEで「"」付ければいけるかな?とにわか知識なりに色々試したけど上手くいきません。
申し訳ない!教えて下さい! >>802
エラーで数式晴れなかったわ
https://jsfiddle.net/jr6eascL/
、をchar(10)に置き換えて、
書式設定から「折り返して数式を表示する」にチェックだけでいい >>803
801です。
あなたは神か。
悩みが解決しました。素早いご回答ありがとうございました。 日本の年号変更と元年
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"日" >>805
[<43586]ggge"年"m"月"d"日";[>=43831]ggge"年"m"月"d"日";ggg"元年"m"月"d"日" レイアウト等が少し違うブックにデータを貼り付ける際に、VBAで事前にレイアウトを合わせる処理をしました。
その後コピーして貼り付けようとしたら
「この操作は複数の選択範囲には適用できません」
のようなメッセージがでて貼り付けができなかったんですが、同じ処理を手動でやると貼り付けできます。
VBAで処理した内容は
・連続した3列を削除 Columns("AA:AC").Delete
・実線の罫線を引く(元は点線) Range("A13:AE200").Borders.LineStyle = True
です。
コピーするセルにはセルの結合がありますが、結合する列数は揃えてあります。コピーする範囲は同じ行の連続したセルです。
貼り付けができなくなった原因ってなんでしょうか? >>807
結合してる場所みれば一瞬で終わるんだけど、ブック上げるのは難しいか >>808
すいません、データ持ち出せないんですよね
誰がいつ作ったブックなのかもわからないんですよ >>807,809
んじゃわからん
pasteの部分も重要
selection.pasteみたいにしてると多分おかしくなる
>・連続した3列を削除 Columns("AA:AC").Delete
ここでselectionが変になっているような気がする
>・実線の罫線を引く(元は点線) Range("A13:AE200").Borders.LineStyle = True
これは多分どうでもいい >>810
コピペはVBAではなく手作業でした。同じブックのAAからAC列を手作業で削除するとペーストできて、VBAで削除するとペーストできない、という状態でした >>811
わからんねぇ
以下はどうなってるの?
・何をコピーしたのか
・選択範囲 >>812
コピーしたのはすべて文字列、範囲はA:AE列(7列、5列、3列等のセルの結合あり)で、飛ばした列はないので「複数の選択範囲」ではありません。列の非表示もありません。 B2〜B10のデータから条件に合ったセルのそれぞれのA列にある数値を合計してB1に表示するにはどうしたら良いでしょうか? >>813
見ないと分からんね
selection.areas.count
これが選択範囲の数なんだけど、これが1ならバグ
2以上なら何らかの理由で分割されている。ほぼ間違いなく列削除が原因だけど違うかも知れない。見ないと分からない
>>814
sumif()
=SUMIF(B2:B10,"b",A2:A10)
https://i.imgur.com/mPZdqQM.png 残業の時間帯事にまとめたいんだけどいい関数ないですか?
誰がどの時間帯にどれだけの残業をしているか
時間帯を塗りつぶしで色分けして特定の範囲のその色を合計する関数はありますか? >>816
関数というより条件付き書式のカラースケールがいいんじゃないかな? >>815
>selection.areas.count
>これが選択範囲の数なんだけど、これが1ならバグ
ありがとうございます、月曜に見てみます 以前、ゲームのイベント予測について質問をした者です
試行錯誤を重ねた結果、2行目にキャラの名前、3行目にそのキャラのイベントが予測される日のうち次回イベント開催日に最も近い日が出るようにしたのですが、それらの中から、次回イベント開催日に近い順にキャラ名が出るようにしたいです
何か良い方法があれば教えていただきたいです 「クマさん」という名前のシートと「統計」という名前のシートがあり、「統計」シートの特定セルには「クマさん」シートの特定セルを指定した関数が入っています(「クマさん!〜」という指定)
この時に「クマさん」シートを削除して同じ名前の別の「クマさん」シートを追加しても関数がREF!になってしまうのですが、何がいけないのでしょうか? >>824
シートを削除した時点で#refエラーになっている。ちなみにrefはリファレンス、参照の意味でそれがエラーって事はドコ見ていいか分からんって内容のエラー
シートにはIDがあって、関数の=sheet1!a1のsheet1はそのIDを指定している
だから一回削除するとヒモ付が切れてしまう >>823
以前と言われても知らないよ
前のレス番も教えてもらえれば見る >>826
単に名前で参照してるわけじゃないのか・・
てことはやっぱり新しいクマさん呼んで来る都度関数の方のREFを直すしかないんですね >>828
それはそうだけど、全体通して教えてくれればもう少し良いやり方を提示出来るかも知れない
そもそも消してから同じ名前でシート作りなおす理由が良く分からん >>823です
すみません、以前のレス番号が抜けてました
>>791の内容で相談を受けました >>824
対象シートが差し替わる場合はindirect使えばいいよ >>829
統計シートは関数が変わらないから不動なんですけど、クマさんシートの内容については1月のクマさんの行動、2月のクマさんの活動〜っていう風に変わっていきます
なのでその都度1月分のクマさんシートを統計シートのあるブックにコピーして作業、2月になったら1月分を削除して2月分を同シートにコピーして作業〜ってのを毎月繰り返す感じです >>830
もうちょい日本語を読みやすくしてほしい・・・
1
2 山田 鈴木 渡辺
3 1/1 2/1 3/1
こういう表ってこと?
>次回イベント開催日に近い順にキャラ名が出る
それなら別にそのままでもなっているのでは
もし違っていたらブックを上げて欲しい。読むのが結構しんどい >>832
統計って一月分?
それなら統計シートにコピーせず、最初から「1月のクマさんの行動」側のブックにつけておいたらいいんじゃないの? >>833
そんな感じです!
ただ、例えば
1
2 山田 渡辺 鈴木
3 1/5 1/1 1/10
みたいに順番がバラバラで、1/4に近い順に表示したいって感じです。 >>815
遅くなりましたが上手くいきました
ありがとうございました >>835
あぁ、順番じゃないのね
・山田〜1/10をコピー
・A4右クリック
・形式を選択して貼り付け→行列を入れ替える、値
後は並び替え >>837
ありがとうございます!
近似値順の並べ替えの方法も教えていただけると嬉しいです
例えば
1 山田 1/5
2 鈴木 1/1
3 渡辺 1/10
のとき、1/7に近い順に並べる感じです。 >>838
AB列を選択
メニューの並び替え
最優先されるキーを「列B」
https://i.imgur.com/LlcWOcF.png
後は目視かねぇ
マクロなら全自動だけど、ファイル構成分からんとしんどいな >>838
計算列を追加して1/7を基準に引き算をしてABSでプラスマイナスをなくしてその値が少ない順に並べかえるのが手っ取り早そう 近似値順ってマジで絶対値の近似値順がほしいのか?
今日以降を順に並べるのではなく? >>839さん、>>840さん
ありがとうございます
>>841
絶対値の近似値順が欲しいです
日付だけならできなくもないんですが名前の方を表示するのが出来ない状況です 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
初歩的な質問で申し訳ないのですが教えて頂きたい事があります
1年齢 2タバコ 3お酒 4パチンコ
25 ○ ○
28 ○
32 ○ ○
35 ○
22
24 ○
上記の様な表を作って、20代で○が一つでも付いている人数を求める場合、どの様な関数を使えばよろしいですか
COUNTIFSを使って、20代の人数は算出出来たのですが、その中で○が該当する人数の出し方がわかりません
恐れ入りますが回答頂けると有り難いです。 >>834
一月分です
行動ブックに関数入れた統計シートくっつけても同じことにならないですか?
特定の行動シートをくっつけていない統計シートのみのブックを作っておいて、それを毎月行動シートにコピーすればいいのか >>844
できました!ありがとうございます。
https://dotup.org/uploda/dotup.org1827200.xlsx.html
あとは各シートの近似値をすべて、前回の開催日以降かつ今回の開催予測日に近い値にしたいのですが難しいですかね… 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
初歩的な質問させてください
シフト表を作ってるのですが
4月 1日
田中 朝
山本 昼
佐藤 夜
山田 休
上記みたいな感じで、10人いて1日に朝2人、昼3人、夜1人以上がシフトに入ってればOK
入ってなければNGみたいな判定を入れて
シフト表を作った時点でシフト漏れを出さないようにしたいのですが
どうすればよいのでしょうか? >>848
ありがとうございます。
いろいろやってみましたが
複数条件の式の作り方がわかりませんでした。
=IF(COUNTA(C1:C11,"朝")=1,COUNTA(C1:C11,"昼")=2,COUNTA(C1:C11,"夜")=1,"OK","NG")
式が全然違うのでしょうけど、1つの式にまとめて作ることはできないのでしょうか? >>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")
かな。 >>850
ありがとうございます。
その式を入れると
#NAME?というエラーが出ます。
調べて見ましたがよくわかりませんでした >>851
なんでも感でも聞くんじゃなくてもう少し数式読んだほうがいいぞ
counifsは多分countigsの間違い
=IF(AND(COUNTIFS(C1:C11,"=朝")>=2,COUNTIFS(C1:C11,"=昼")>=3,COUNTIFS(C1:C11,"=夜")>=1)=TRUE,"OK","NG") IF ISERRORでerrorの場合に0を表示させていますが、少し目障りです。
これを計算の邪魔にならないように文字列ではない
「空白」のようなものにするにはどうしたらいいですか? >>851,852
ありゃ、失礼。"T"が抜けてもうた。
コピペしたので3つとも・・・orz
=COUNTIFS(条件範囲1, 検索条件1, [条件範囲2, 検索条件2],…)
条件範囲に対して検索条件が1つだけだから、
=COUNTIF(条件範囲, 検索条件)
でもいいかと。 >>852
>>855
ありがとうございます。
この式を入れたところ結果がFALSEで固定されてしまい
OK、NG表示がされませんでした。
なんでも聞くのも申し訳ないので調べてみます。 >>857
すいません色々と
ありがとうございました。できました。
$が必要なのですね。
複数条件になった時の式の書き方が難しいです。 =IF(ISERROR(VLOOKUP($A1,$C1:$D4,2,FALSE)),"",VLOOKUP($A1,$C1:$D4,2,FALSE))
このとき
そもそもC1:C4に該当がない場合は表示されないのでOKですが
D1:D4に値がない場合、0が表示されるのです。 あ、すいません、OKじゃないです
表示されてなくても計算できないです(#value) >>860
うーん、結構めんどくさい処理にしようとしている
iferrorにして該当無しと空白0にし、0をユーザー書式で非表示ってのはどうだろう。これなら計算もエラーにならない
=IfERROR(VLOOKUP($A1,$C1:$D4,2,0),0)
ユーザー書式に以下を入れる
0;-0;;@ >>862
ありがとうございます。
なるほどシンプルですね・・
ちなみにそのユーザ書式はどういう意味になるんでしょうか? >>863
https://support.microsoft.com/ja-jp/help/883199
数値がプラス、数値がマイナス、ゼロ、文字列の時の意味。セミコロンで区切る
0は数値、@は文字列になる >>815
selection.areas.countで確認してみましたが、選択範囲は「1」でした。
excel2016ですがバグかもしれないですね >>867
結合の範囲はA:AEまでですか
列削除前に結合セルがAA:ACの範囲内に左右片側のみある行はありませんか
Y:ACとか、AB:AEとか、AC:AJとか >>868
どこまでだったかはっきり覚えてはいませんが、結合はAE列以降もありました。削除したAA:AC列は結合でひとつのセルになっていて、両サイド共結合セルでした。 コピーと貼り付けはそれぞれ範囲選択をし直してる?
貼り付け先の結合を全部解除しておいて貼り付けならうまくいく? >>867
表示の分割かウィンドウ枠の固定かグループ化かその辺りかも知れない
なんかあれでエラーになった事があるようなないような
それでも無理なら結合セル解除してから試してみてはどうかな
最後に結合する
セル結合は本当に害悪 >>870
コピー時の範囲選択はVBAで選んでおいても後から手動で選び直しても駄目でした。貼り付けは結合済みは駄目なので、新規のシートにも貼り付けてみましたがやはり駄目でした。
>>871
表示の分割、ウィンドウ枠の固定はなかったと思います。グループ化は確認していませんが、グループ化したときに上部にでる四角はなかったと思うので、多分ないです。
セルの結合ほんとにやっかいですよね 【1 OSの種類 .】 Windows 10
【2 Excelのバージョン 】 Excel 2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
3変数x,y,zの相関関係の式を求めたいです。
xとyからzが出るようなのですがその計算式が分からないので、データから予測したいです。
x,y,zのデータが30回分ほどあるのですがそこから予測するのは可能でしょうか? >>875
多分だけど>>874は相関係数じゃなく計算式が求めたいんじゃない?
データから3変数の計算式求めるなんてできるか知らんが >>876
計算式もそのページに書いてあるよ
俺もできるかどうかは知らないけどな。ははは エクセルのシフト表があるのですが、
シートに時間を入力して別シートに該当する時間のセル部分に色がつく
といったファイルがありました。
時間の入力は1つのセルに出勤時間、1つのセルに退勤時間のみ
|_5/1_| (例)
|10|18|
それが別シートの1日のシフト表に反映されて 10時〜18時のセルに色がつくようなものです。
例
時間|9:30|10:00|10:30|11:00|・・・・|18:00|18:30|
Aサン|____|ここから18:00までセルに色がつく
色がつくだけでセルに計算式は入っておりません。
条件付き書式とかなのでしょうか・・?
もしお分かりの方いましたらよろしくお願いします。 >>878
そのとおり、条件式だと思う。
条件式はなにも、自セルだけしか条件セルに指定できない訳ではないから。
ただし、一度作るとちょっとレイアウト変えようとすると、
設定し直しでメンドい。 横軸に月日がある予定表で
ある日に作業Aと入力したら何日後に作業Bなどの連続する体系を設定した通りに自動で入力するにはどうしたらいいでしょうか? >>880
ちょっとざっくりしすぎかな
祝日の扱いとか結構細かいところが大変だと思う
「EXCEL ガントチャート」
「EXCEL ガントチャート 工程表」
などで検索すればそれっぽいのは出てくると思う >>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使うしかないような気がする。
(そんなに難しくはないけど) >>881,882
どうも
ガントチャートを色々検索しては見たものの
自分の欲しいものとは少し違っているようで近いものが見当たりません
当方のイメージとしては
・10種ほどの工程のあるラインが20ほど独立して有る
・ガントチャートのように工程が全て縦に展開だと全体が見通せないので1ラインごとに各行程をを1行でまとめて表したい
・条件付き書式の色分けだけでなく文字列や数値も自動入力したい
・数値は日付ごとに集計したい
のような事をしたいと思います >>883
第一印象として、頓挫しそうだぁ・・・
どういう物が欲しいか、
EXCELにべた書きで作ってみてはどうかな
条件付き書式や数式使わないで
そうすれば暇人が作ってくれるかも知れない
来れないかも知れない >>883
そこまでの要求仕様だと、たぶんExcel単独ではダメポそう。
アドインかその他のの専用版(有料/無料、窓の杜等参照)があったかと?
Officeアドインで"Gantt chart"で検索すると
・無料版1つ
・有料版4つ
ある模様
https://i.imgur.com/zZ2gHgs.png やはり簡単に見つからないと言うことは要望が特殊なんですね
そもそもガントチャートじゃ無いようですし
今は部分ベタ打ちでやってるので全自動化したかったんですが
あれもこれもと入れてたら他人にはほぼ理解不能なものになってます >>887
数式のみのガントチャートならいくらでも出来るけどいる? excelからIE操作をVBAでやることを考えています
特定のページをクリックで開く→特定の入力欄に数字を入力する→日付を30 4 23のような形で入れる→クリックする
のようなことを何回か繰り返すのですが、この場合マクロの記録のような形で記録することはできますか? >>891
IE操作はマクロの記録で記録できないよ >>893
ある画面からクリックで遷移×5回→3つのワードボックスに30 4 24のような形で当日の日付を入力→クリックで遷移×3 くらいの自動化をしたいのですが、難易度高めですかね・・ >>894
webの勉強も必要になるので、難易度はかなり高い
ページによっても必要なコードも変わるから、コピペもあまり通用しない
ページを教えてもらえれば書いてみる
別の方法として
・キーボードマクロ。次善に設定したキーボード操作をしてくれる。ずれると悲惨なことになるが、vbaよりは大分ラク。kmmacroやuwscなどが有名
・chrome拡張機能のキーボードマクロ。かなり色々出来るみたいだけど使ったこと無い。別スレで聞いても良いかもな >>892
他にも数十分単位とかも出来る
このガントチャートは開始と終了を手入力するタイプだけど
生産数と生産人数と生産性を手入力して(元データを引っ張ってきてもOK)、開始と終了を自動入力にするタイプも出来るけど
どんなフォーマットがいいのかな >>896
やっぱり高難度ですかあ
とりあえず必要な過程を完全に整理しつつ、キーボードマクロなるもの使ってみてダメそうならまたお伺いしにきますありがとうございます >>897
ありがとうございます
最初考えていたのは工程表他を別の表から参照して
ラインのチャートは1行で重ねて表記するものでした
工程の数値の単位も1種類ではないなど複雑なので自力ではどうにもならなくて
ガント形式でも目的は果たせるかなと思い直してます
入力は開始終了が自動の方がいいです 大量の日本語の住所を、英語に変換する方法教えてください 別のブックにあるコードと照合して無いコードがあれば「A」と表示させる関数ありますか?
他ブックなのでcountifの様な他ブックを開いてないと更新されない特殊な関数は無しでお願いします
因みにマクロは組めないので関数だけで出来る方法があれば教えて下さい
sumifならsumとifに分ければ出来るようですが、同じことをcountifでもやりたいです >>900
手順としては
(1) 県、町、番地に分割
(2) フリガナ(読み方)のデータを取得
(3) ローマ字に変換
(1)と(2)は、最初からデータがそうなってなければ、自動でやるのはかなり大変
ざっくり変換したあと、手作業の修正が必要になる 「x月集計」というブックが、別の「x月レコード」というブックを参照していて
x月集計をy月集計など順次変えて別名保存していくとします。
この場合、関数で自動的にy月レコードを参照するようにするに出来ますか? >>901
・コードって何?
・他ブックを開いてないと更新されない特殊な関数→開かないと更新されないのが基本 Sub sample()
Dim objIE As InternetExplorer
Call ieView(objIE, "開きたいページのurl")
end sub
これで実行するとsub又はfunctionが定義されてないって出るんだけどどこがおかしい? >>904
何とか自己解決しました
別のブックの値をsumなど使って引っ張ってくる程度なら別のブックを閉じていても更新されますよね
でもsumifやvlookupのような一部の関数を使うと別のブックを開かないと更新されないのです
それでもsumifの場合はsumとifに分けて数式を組むことで問題は解消できます >>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 >>908
参照設定してるかい?ie操作系を書いてるサイトは参照設定の記述を省いてることが多いよ
>>907が言ってるのは
sub ieview
ほにゃらら
end sub
っというのに値を渡そうとしてるけど渡し先を作ってないんじゃない?ということだよ >>909
参照設定はできてました
サブルーチンの話もなんとなくわかりました
callを使うならやりたい動作のサブルーチンプロシージャを作っておいてそれをcallで動かすということですかね
やりたいことは開いているページの中から特定の文字列のリンクを探してクリックor特定のラジオボタンをクリックする動作の繰り返しなので、どうしてもサブルーチンを使うなら、
ページ1でのクリックをサブルーチン1
ページ2でのクリックをサブルーチン2…という風に
したうえでcallすると。
ちなみに昨日>>896でお世話になったものです、フリーソフトの導入が不可能だったので再び戻ってきました
操作したいページは普通のWebページではなく、IE上で動いてる特殊システム(って表現でいいのかな)です
ソースの表示はできたので見る人が見たら実現できるのでしょうが・・ 【1 OSの種類 .】 Windows 10
【2 Excelのバージョン 】 Excel 2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A列に語群が並んでいて、B列に短いテキストが並んでいるとして、
B列の文章の中に1つでもA列の単語が1つでもヒットすればC列に〇を表示させたいのですがどうすれば良いでしょうか?
【イメージ】
豚肉 にんじんと卵と油
牛肉 鶏肉とひじきと味噌 〇
鶏肉 大葉と魚の煮つけ 〇
魚 麻婆豆腐
焼魚定食 〇
ブロッコリーのサラダ >>910
恐らくやろうとしてる事はgoogleでテキストボックスに入力して検索ボタンを押す、とか
ヤフオクでテキストボックスに入力して検索する、という動きに近そうだからサンプルコード沢山あると思う >>911
B列の文字列をすべてひとつに結合して、SUBSTITUTEする前と後を比較 >>903
今のファイル名から"○月"部分だけ切り出して○月レコード.xlsxのSheet1のA1を参照する
=INDIRECT("["&SUBSTITUTE(MID(CELL("filename"),FIND("[",CELL("filename"))+1,
FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1),"集計.xlsx","")&"レコード.xlsx]Sheet1!A1")
文字が長過ぎエラーが出るから改行してるけど実際に使うときには改行しない >>911
=IF(COUNTIF(B:B,"*"&A1&"*")>=1,"○","×")
こんな感じ? Excel上手くなりたいです。
分からない事があったらネットで調べて解決。
これを繰り返したら上達しますかね?? >>917
ありがとうございます 関数まではネットで検索して解決出来そうですがマクロまでいくとそうはいかなさそうなので学校に行こうかと思っています。 既に業務で使っている?それなら業務を通じて覚えたほうが早い
学生の内からエクセルを覚えるとかは結構しんどい >>919
はい、業務で使ってます。今三十半ばのオッさんですが、4年前に管理系の職種に転職してExcel使いまくりの仕事についてます。前職はsum使えたら神扱いされ天狗になってたんで今は自分のExcelスキルの無さに唖然としてます。。。少しずつスキル上げてくしかないですね。 >>922
ありがとうございます。
毎日触れてというか触れないと仕事にならないので頑張ります。
あと事務系の人はExcelから逃れることはほぼ無理だと思います。Excelの汎用性の高さを考えると事務系の職種の人間はExcelのスキルを上げることが最も自分を助ける術ではないかと思います。頑張りましょう。 書式で年号表示すると今だ平成31年5月1日とか出るんですがパッチはまだかいのう
win10/office365 (自分の環境でセルフパッチで令和って出ても受け取った先で31年じゃあなぁ…) >>924 条件付き書式で令和対応したワークシートを雑談スレにリンクしといたからつかってくれ >>916
私は今それの繰り返し
周りにマクロまで出来るのはいないから
マクロでマクロを書き換えるとかまでは来たわ
まだファイル操作とかは苦手
ひとつのことをやるのにいろいろな方法があってどれがいいのか選ぶのも苦手
エクセル使い始めて4ヶ月経ったけどエキスパートpart1までは合格したよ Excel エキスパート余裕ぶっこいて受けたら合格ラインギリギリで危なかった >>927
やるのに選択肢は複数あるとき困るわ
あるだけで、最適かがわからないから >>927
すごいっすね。1日どれくらいExcelの学習にあててます? >>929
作るのにかかる時間と得られる効果で比較すると良いよ
自動で出来るようにVBAや関数使うより手修正の方が早いこともある 【1 OSの種類 】 Windows7
【2 Excelのバージョン】 Excel2016
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
Excelの表示方法を標準モードからページレイアウトモードにしたとき、ホーム画面でフォントや大きさを変更しようとしても、
どういう文字・大きさになるかのプレビューができません。標準モードならそれができるのですが…
2016では標準モードでしかフォントのプレビューはできないのでしょうか? >>928
ドキドキしながら受けたけど満点だったよ
20分で終わったからどっかに問題がまだあるんじゃないかと探しまくったし見直しもし過ぎたw
スペシャリストは960点超え
エキスパートは初めての模試は38%だったからさ
問題レベルに結構差があるよね >>930
勉強というより好きなものを1日2時間くらい作ってる
最近は頼まれたイベント起きると画像を貼る系が多いかな
申請書に判子の画像貼るとかを理由表示したりブランク入力だったら消すとか条件絡めながら
理由を使ってる人が書き換えたらマクロまで書き換えるようにしてみた エクセルって慣れると効率化すること自体がルーチンワークになるよね 【1 OSの種類 】 Windows10
【2 Excelのバージョン】 Excel2013
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
令和対応のパッチ出てます? 【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列の改ページ直下に配置できればなと思っています。
また、行の高さを変えることでページ数が増えることもあるのですが、そうすると増えたページには
画像がありません。画像はすべて同じものなので、コピーすればいいのですが、ページ内に画像が
無い場合はコピーして配置、というようなことはできるでしょうか? >>934
VBAを独学でやっているのは凄いです。関数までならいけそうなのですが。 >>938
今の時点で近日公開予定って、アウトだなw
てっきり第3週の水曜日に月例パッチで対応してくれるもんだと思っていたが、それは無かった(^^;
ぎりぎり26日まで待ってたがそれでも対応しなかった(# ゚Д゚)
とれるかどうかはともかく、国内は10連休だよな
次に出社したとき対応できませんじゃ仕事にならない
すでに見積有効期限とか、納期とか、契約期限とか、新元号に対応してないと困りまくりだよね
なので、26日現在、自社から発行する書類は元号やめて西暦にしたわ
どうしても元号じゃなきゃならないものだけ、随時対応していくつもり
にしても、ちゃんと動くか確認するため5/1〜5/7のお休み中に出社して動作確認はしなきゃだが( ;∀;) あ、5/7までじゃないや
5/6までのお休み中の間違いやね
7日から通常業務ですた >>941
そりゃあまだ変わってないからさ
不謹慎だが、今日突然天皇陛下崩御されるとずれるからな
皇太子と一緒に無くなったら令和すらならないかも知れん >>939
マクロの記録を仕えばok
表示?改ページプレビュー
で改ページを変更した時の動作を記録する
例えば2ページ目をA70セルで区切った場合はこんな感じ
Set ActiveSheet.HPageBreaks(2).Location = Range("A70")
後はE71に画像をコピーなりなんなりすれば行けると思う
ただ注意点として、エクセルは印刷がしょっちゅうずれるので
ギリギリで調整してしまうと別のPCで開いたときにページが分割されるって事になりかねないので、
2,3行は余裕を持っておくと良いよ >>943
その可能性考えたら、自社から発行する書類はすべて西暦ベースにするべきでしょうねw
今回は予めわかっていたにもかかわらず・・・この対応なので
自分が入社したのは平成元年4月なので、いままで元号が変わったこともなく、
変わったことに対して自分が対処することもなかったのですが、なぜか今は自分が対応しなきゃな
立場で、何でやねんという思いがいっぱいですw
ま、一番楽なのが西暦に変更なんだなw
あ〜、でも取引先にはエビデンスがどうとか言われる可能性が高い( ;∀;) >>945
業務上は、西暦に変更することが間違いなく正しいと思う
まずは取引先に言ってみたらいいのに
俺なら絶対に言うわ。
いつ起こるかもわからんことなのに、アホらしすぎる 条件付き書式で令和対応したワークシートを雑談スレにリンクしといたからつかってくれ Windows7
Excel2010は
新元号に対応しますか? >>949
MSのサイト見る限り対象になってる
ただ、実際に可能かどうかは試してみないとわからない こんなかんじ
ttps://dotup.org/uploda/dotup.org1832162.png
ttps://dotup.org/uploda/dotup.org1832161.xlsx.html ↑2021年以降はすべて令和3年表示になるので注意 令和4年以降も表示したい場合は自分で書式を追加しないといけない
それと、条件付き書式なので表で多用すると書式が増殖して動作が重くなるかもしれない。適用先を単独セルじゃなく範囲にするなど自己管理が必要 【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに背景色(青・黄・赤)がついています。
それぞれの色がついたセルの2行下の部分,つまりワンセットの3列目に数値が表示されています。
この数値を各背景色ごとに合計したいのです。
よろしくお願いいたします。 誤記があったため,再度書き込みます。
【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに背景色(青・黄・赤)がついています。
それぞれの色がついたセルの2行下の部分,つまりワンセットの3行目に数値が表示されています。
この数値を各背景色ごとに合計したいのです。
よろしくお願いいたします。 色で集計は無理 青=1、黄=2というふうに色をいったん番号に置き換え、番号を元に色付けするべき 色で集計は無理 青=1、黄=2というふうに色をいったん番号に置き換え、番号を元に色付けするべき >>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 >>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のペースで配布されるため,ファイルにあらかじめ表や数式を埋め込めないのです。
よって,マクロをコピペしたほうが手間が少ないので,マクロでの解決の方がありがたいです。(マクロにパスワードなどは設定されていません。)
配信されたファイルに,自分で解決マクロをコピペし,そのファイルは自分の手元のみに残り,誰かに使わせることはない。ということです。 >>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 >>960 つくった 拡張子はxlsmに変更してから開いて。VBAがつかえるならこれくらいつくればいいのに
ttps://dotup.org/uploda/dotup.org1833576.txt.html まちがえた
誤
For i = 1 To 5
For j = 1 To 6
正
For i = 1 To 6
For j = 1 To 5 >>961
これでいけそうな感じです、ありがとうございます
画像のindexについてはすべて同じ画像なので問題ないです
ページが増えて画像が足りなくなる場合に手動でコピー以外に方法がないか
もう少し考えて見ます >>964
同じ画像を使うなら、カメラ機能ってのがある。今は図のリンク貼り付け、って言うんだっけな
もしよかったら試してみて、画像は一個だけで済むので軽くなる
ただ、動作は重くなるかも知れない。
それか、行のヘッダを使っても画像は一枚で済むと思う。ただ印刷用の調整はしづらく成る >>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で呼び出してみたらうまくいきました >>962-963
ありがとうございます。
作っていただいたマクロを拝見し,基本的な構造がわかりました。
それを実情に合わせるのに,こんな時間までかかってしまいました。
私のマクロのスキルはそんな程度です。
これで今週からずいぶん楽ができそうです。
本当にありがとうございました。 VBAってどうやって勉強すればいいの?
パソコン教室?専門学校? 金があるならオフィス田中のセミナー
無いなら業務をいかに楽できるかを考えて実行していれば自然と IE上のページで2時間毎に自動ログアウトされるのが鬱陶しいのです
最後のページ操作から2時間してから操作しそうとする(何かしらのリンクをクリックする)とパスワード入力画面が出る仕様ですが何かないでしょうか >>970
IEじゃなくchromeなら拡張機能もtemp monkeyだっけな、あれ使えば行ける
ただ使い方は他で聞いてくれ あ、一応excelのVBAでできないかなって話です >970
vbaにタイマーないからめんどくさいな
セッションを保持したいなら、jsか何かで裏で開くとかやってみると行けるかも application.ontimeで適度に再読み込み >>968
VBA学びたいからパソコン教室いくよ。独学じゃしんどいわ。 VBAって所詮BASICだし本を何冊か読んで順番にやれば、仕事で使う簡単なシステムを作る程度なら独学でなんとかなったな
アルゴリズムを理解できるかどうかだと思う >>978
言語はなんでもプログラミングになれてるかどうかっての大きいね
私はエクセルは4ヶ月ちょいだけど元プログラマだからな >>976
セキュリティの問題でフリーソフト使えないのよ
>>975だと作業中に不意にログインし直し入って作業水の泡みたいにならないかな vbaは標準モジュール、シートモジュールが恐ろしくとっつきにくい
いきなりスコープを覚えにゃならん
標準モジュールだけにしとけば良かったのに >>980
別のIEインスタンス作って、そっちをリフレッシュするんだ
そうすりゃセッションが途切れないはず
chromeで言う別タブみたいな感じ >>970
板違いになるがhtmlヘッダーのmetaタグでrefreshで自動更新すれば? >>983
サーバー側に手を入れろってか?
それができるなら自動ログアウト切るだろ エクセルのセルからVBAを呼ぶことは出来るのでしょうか?
例えば"A1"のセルに CALL "なんたら"ってサブルーチンで
計算させた値を返すようなことはできるのでしょうか? >>986
出来るよ
A1セルの値が○○になったら等の条件で >>986
vba ユーザー定義関数
とかでググるがよい >>987
>>988
どもです Functionってのを使えばいい見たいと解りました >>989
ユーザー定義関数なんて使わないよ
イベントで大丈夫 >>991
gengouのgeじゃね?知らんけど。 エクセル2010 平成バッチを当ててるけど、令和になりません。
=DATESTRING(TODAY()) → 平成31年5月1日 になります。
残念。 令和はVBAを学ぶ時代にしたい。みなさんよろしくお願いします。 >>994
いいね!自分はExcel統計解析を学ぼうと思っている このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 75日 16時間 43分 13秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。