Excelに関する質問は、ここで!
/)_/) ( ・分かる人はできるだけ回答して下さいませ。
< ゚ _・゚> .。oO( ・回答がなくてもキレないで。急いでいても催促は3日以上開けて。
ノ) / | ( ・自己解決したらその解決手段を他の人の参考の為に書いてね。
\(_,,,_,,,)
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★要望は具体例や図を使って明確かつ具体的に。
★質問前に
>>2-20あたりの注意書きやQ&Aも読もう。
★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15あたりの解説を参考に使ってみよう。
※人大杉でテンプレ・Q&A・ログが読めない場合は、2chブラウザを導入するか、下記のログを読みましょう。
・前スレログ
http://makimo.to/cgi-bin/dat2html/dat2html.cgi?pc8/2/bsoft/1125178942/ ・現スレログ 上のURLの末尾の数字10桁を現スレのものに書き換え。
現スレURLは「
>>1 」←これを右クリックしてプロパティを選択すると表示されます。
・前スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
= FAQ: 基本 =
Q:こんな関数ありませんか?
A:「関数の挿入」にある検索機能や、ヘルプの検索を利用しましょう。
Q:数式がエラーを返すんですけど
A:関数をネストせず、数式を分解してみてください。
どの関数がエラーになっているのか解れば、その関数の参照先や、
ヘルプなどを見て大抵は簡単に解決できます。
Q:計算結果やセルの値によって自動で書式を変更したいんですが
A:条件付き書式を利用してください。
数値比較で文字色のみの指定なら表示形式でもできます。
Q:計算結果やセルの値によって表示形式を変えたいのですが
A:表示形式のユーザー設定で複数条件の表示形式を指定できます。
基本形式は「正の数;負の数;0の場合;文字の場合」です。(;は半角で)
又は「[>=70]70以上の場合;[>=50]50以上の場合;50未満の場合;文字の場合」というような指定も出来ます。
書式記号などに関することはヘルプを参照しましょう。
Q:計算結果が自動で更新されなくなったんですが、どうすれば直せますか
A:Excel(2002?)の不都合で、計算方法が手動になってしまうことがあるようです。
ツール > オプション > 計算方法
で、計算方法を自動にすることで元にもどります。
参考URL:
ttp://support.microsoft.com/default.aspx?scid=kb;ja;817716
= FAQ: 列の表示について =
Q:列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。
アルファベットに戻すにはどうしたらいいですか?
A:ツールメニュー:「オプション」 -「全般」タグで
『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。
Q:列を256個(IV列)よりたくさん広げることはできませんか?
A:エクセルのシートは65536行×256列が仕様上の上限です。
シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、
列数を増やさない方向で工夫するしかありません。
Q:ひとつのブックにシートは何枚作成出来ますか?
A:物理メモリ容量やシートの内容に依存します。
= FAQ: 印刷プレビュー =
Q:印刷プレビューではセル内に収まっていた文字が
実際に印刷してみるとはみ出してしまうのですが、
何とかなりませんか?
A:「印刷プレビューと印刷結果が一致しない」のは
昔からのExcelの弱点で、どうにもなりません。
セルの幅や高さに余裕を持たせるか、
書式設定で「縮小して全体を表示する」にチェックを入れましょう。
= FAQ: マクロの”削除” =
Q:マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。
A:モジュールの解放が必要。
【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放
= FAQ: 条件によって表示を変更するには? =
Q:セルの内容を判断して、表示を変えたい
A: IF関数を使います。
=if(条件,条件が成立した場合,成立しなかった場合)
例1:基本
セルA1が1の場合○、それ以外の場合×を表示
=IF(A1=1,"○","×")
例2:if文の中にif文
A1が、1の場合○、2の場合△、それ以外×。
=IF(A1=1,"○",IF(A1=2,"△","×"))
例3:ANDやOR活用
A1が、4〜6の場合は、普通と表示
=IF(AND(A1>3,A1<7),"普通","少ないか多い")
例4:計算も出来る
A1が10までなら、A1を10倍して表示、それ以外なら2を引く。
=IF(A1<11,A1*10,A1-2)
例5:対象が空欄なら表示も空欄にする
A1が空欄なら結果は何も表示しない、それ以外ならA1から2を引く。
=IF(A1="","",A1-2)
=IF(ISBLANK(A1),"",A1-2)
詳しくはヘルプを参照しましょう。
= FAQ: グラフについて =
Q1:データの空白部分があって、そこで折れ線が切れてしまいます。
繋げたいのですが如何したらいいでしょうか?
A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック
Q2:棒グラフに重ねて、折れ線グラフを表示するにはどうしたらいいのでしょうか?
A2:最初、すべてのデータを棒グラフで作成。
次に、折れ線で表わしたいデータ系列のどこかを、グラフ上で右クリック
サブメニュー>グラフの種類>折れ線>OK
Q3:ある系列だけ、縦軸を別にしたいです。
A3:その系列のどこかを、グラフ上で右クリック
データ系列の書式設定>軸>使用する軸「第2軸」にチェック>OK
= FAQ: 入力した値が変わる? =
Q:セルに入力した値が勝手に変わってしまうのですが
入力したままの形で表示させるにはどうしたらいいですか?
A:数字でよくあるケース(先頭のゼロが消えてしまう、日付として解釈されてしまう)
入力する時、先頭にアポストロフィ(')をつけるか、
該当するセルで右クリック−「セルの書式設定」−「表示形式」で「文字列」を選択。
文字列ではなく数値として扱いたいときは
「セルの書式設定」−「表示形式」で「ユーザー定義」を選択し、工夫する。
A:文字でよくあるケース(i⇒I、teh⇒the、cna→can など)
ツール→オートコレクト→入力中にオートコレクト
の該当する箇所を削除。
= FAQ: 行列の入れ替え =
Q:エクセルで作った表が横方向に多くなってきたので
行と列を入れ替えたいのですが。
A:コピーして、適当なセルで右クリック。
形式を選択して貼り付け→行列を入れ替える。
= FAQ: 参照するシートやセルをセルの値で指定する =
Q:A1に「5」とか「6」とか指定する値を変えたら
B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか?
A:INDIRECT関数を使ってみましょう。
詳しくはヘルプで「INDIRECT」を検索
= FAQ: ブラウザの変更 =
Q:Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。
A:スレ違いです。
開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。
※ブラウザからの設定だけではきちんと設定出来ない場合もあります。
詳しい情報をお持ちの方はこのスレにてご一報ください。
= FAQ: セル内での改行 =
Q:セル内で改行したいんですがどうすればいいでしょうか
A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。
= FAQ: ワイルドカード文字の検索・置換 =
Q:* 、 ? で検索するとワイルドカードとして認識されてしまいますが、
* 、 ? の文字自体を検索するにはどうすればよいですか?
A: ~* 、 ~? のように、頭に ~ を付けることでエスケープ出来ます。
A:全角で*と入力し「半角と全角を区別する。」のチェックを外して検索する
(全角なのでワイルドカードとしては使われないが
全半角を区別しないので文字として"*"にはヒットする。)
= FAQ:時刻の入力 =
Q:時刻をテンキーで入力するとき:を入力するのが面倒なのですが、
なにか良い方法はありませんか?
A:「 ..」や「.」を「:」に置き換える方法をお試しください
1) オートコレクトで..を:に置き換える
→自動で置換されるので手間は少ないが..を使う他の入力にも影響する
2) 「時..分」で入力しておいて、後から「編集 > 置換」で範囲指定で一括置換する
→置換に一手間掛かるが、他への影響は無い
(「時.分」だと分の1桁目が0の場合狂ってしまう)
3) VBAのWorksheet_Changeイベントで置換する
→置換する範囲を指定すれば他への影響もなく置換も自動、入力も.ひとつでOK
参考コード(入力は「時.分」)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim buf As Variant
Application.EnableEvents = False
buf = Split(Target.Value, ".")
Target.Value = buf(0) & ":" & Left(buf(1) & "0", 2)
Application.EnableEvents = True
End Sub
= FAQ:シート名やブック名の書きだし =
Q:シート名(ブック名)をセルに書き出したいのですが、どうすればよいですか?
A:シート名 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)
ブック名 =MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
★VBAでの回答をもらったり、Webからサンプルコードを拾ったけど、
使い方がわからないって場合はここを参考に。
Step1 VisualBasicEditorの起動
メニューより、[ツール → マクロ → VisualBasicEditor]と辿ってください。
Step2-a コードを貼る
マクロはその内容によって、置く場所が決まっています。
大抵は回答者が指定してくれたり、サンプルの中にコメントとして書いてあったりするのでそれに従いましょう。
指定がない物は基本的に「Private Sub Worksheet_」で始まる物はシートオブジェクトに、
「Private Sub Workbook_」で始まる物はブックオブジェクトに、それ以外は基本的に標準モジュールに置いてください。
(ツリーの該当部分をダブルクリックして、表示されたコードウィンドウにコードを張り付けます)
├VBAProject (hoge.xls) ←括弧内がブック名、以下がひとつのプロジェクトになります
|├Microsoft Excel Object
||├Sheet1 (Sheet1) ←シートオブジェクト(左側がオブジェクト名で、右側の括弧内がシート名です)
||├Sheet2 (Sheet2)
||└ThisWorkbook ←ブックオブジェクト
|└標準モジュール
| └Module1 ←標準モジュール(※)
└VBAProject (Personal.xls) ←個人用マクロブック
├Microsoft Excel Object
|├Sheet1 (Sheet1)
|└ThisWorkbook ←個人用マクロブックのブックオブジェクト
└標準モジュール
└Module1 ←個人用マクロブックの標準モジュール
※ 標準モジュールを追加するには、追加したいプロジェクトツリー上で右クリックし、
メニューから[挿入 → 標準モジュール]を選択してください。
Step2-b ボタンに登録する。
通常、イベントで動かすマクロ以外は、マクロの一覧から選択して実行しますが、
頻繁に使う場合や、他の人が操作する場合はシート上のボタンを押して実行できるようにすると便利です。
まず、メニューから[表示 → ツールバー → フォーム]と辿ってフォームツールバーを出し、
ボタンアイコンを押して、適当な場所にボタンを作ります。
ボタンを作ると自動的に[マクロの登録]というダイアログが立ち上がるので、
(立ち上がらない場合はボタンを右クリックして[マクロの登録]を選択)
[新規作成]を押して表示されたコードウィンドウのカーソル位置にコードを張り付けます。
既存のマクロを登録する場合は、[マクロの登録]で一覧から選択して、[OK]を押してください。
Step3 マクロの実行
ボタンに登録したものは、ボタンを押せば実行されます。
イベントで動かすものは、所定操作をした時に自動で実行されます。
それ以外はメニューから[ツール → マクロ → マクロ]と辿って表示されたマクロの一覧から選択して実行します。
Step4 トラブルが起きたら
トラブルを自己解決出来ない場合は、
・エラーが出る条件 (どうやってもエラーが出る、〜をしたときにエラーが出る、等)
・エラーメッセージ (ダイアログ上でCtrl+Cを押せばメッセージをコピー出来ます)
・エラーが出る位置 (エラーダイアログ上で[デバッグ]を選択すると、エラー位置がハイライトされます)
などを報告しましょう。
また、期待通りの動作をしない場合も、条件や想定上の結果と実際の結果の内容など詳しく書きましょう。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼環境・書式
・ 列数を256列以上、行数を65536行以上に増やす
・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
・ 行の高さを0.25きざみ以下の単位で指定する
・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
・ 祝日を判断する (作業セルに祝日を列挙、VBA)
▼操作
・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
・ 選択範囲から一部を除く
▼数式・関数
・ セルの書式情報を関数式で取得する (ユーザー定義関数)
・ 関数式でセルの選択状態を取得する (VBA)
・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
・ 入力したセルに結果を返す (VBA)
・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
・ 不定な数の結果を返す (VBA 必要最大数が解っていれば最大数分の数式を組み、結果上不要なものを論理式で非表示にする)
・ 値の書き換え、値の保持 (VBA)
・ 複数の結果を抽出、不特定数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
▼VBA
・ExecuteExcel4Macroの参照で空セルと0値を区別する
・セルの値や変数値で直接変数名を指定する
14 :
名無しさん@そうだ選挙にいこう:2005/10/07(金) 06:33:16
エクセルでテキスト形式で書かれたデータを開きたいのですが、
データの行数が200000行あり、65000行までしか開けません。
別のシートになってもいいので、全てのデータを読みたいのですが
どうすればよいでしょうか。
>>14 エディターかワープロで読み込んで、
1シートに入る行数に分けて別々にコピペ。
>>14 @テキストファイルを65536行以下に分割して、1シート1ファイルを読み込む
Aテキストエディタで開いて65536行以下の範囲ずつカット&ペースト
BVBAでループを回して行単位で読込み、自動的に複数シートに振り分ける
頻用するならBがオススメ。コード書けないなら確かアドインがあったから探してきな。
1度きりならAで充分だろう。65000行当たりからCtrl+Shift+Homeで範囲選択すればいい。
【1 OSの種類.】 WindowsXP
【2 Excelのバージョン】 Excel2002
【3 VBAが使えるか.】 はい
【4 VBAでの回答の可否】可
こんにちは。
エクセルでVBAのマクロを作成しているのですが、
次のような処理をするにはどうすれば良いのかが分かりません。
列Aに300行くらい数値データが入力されているシートがあり、
ある値のセルを検索し(例:値12345を検索するとA10にあったとする)
その次の行にある値が特定の値ならば(例:A11の値が99999のとき)
それを任意の値に置き換える(例:A11の値を77777へ)
どなたかよろしくお願いいたします。
18 :
名無しさん@そうだ選挙にいこう:2005/10/07(金) 13:44:32
EXCEL2000と、2001と2002と2003はだいぶちがうのでしょうか?
EXCELは便利なようなので使いこなせるように勉強しようと思うのですが、
EXCEL2000でいいのか心配しています。
使用方法は、VBAを使っていろいろやってみたいと思っています。
あと、EXCEL2003用のVBA解説本は、EXCEL2000のVBAにもつかえるでしょうか?
>>17 列AのデータがUniqueなら、
A1からA300の範囲をFindメソッドで検索。
そのOffset(1,0)が99999かどうか判定して、TRUEなら
そこに77777を代入。
Uniqueじゃないなら、FindNextで上記を繰り返す。
詳しい使い方はそれぞれのヘルプを参照してね。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
a123
b456
あらかじめ上記のような値が入力されている列に対して、
・1文字目が「a」だったら「シートa」の「123」行目の値を参照
・1文字目が「b」だったら「シートb」の「456」行目の値を参照
という処理を行いたいです。
できれば、マクロを実行したら処理が行われるのではなく、
セルに関数を設定しておいて、「a123」を入力したら
自動で値の参照が行われるようにしたいです。
よろしくお願いいたします。
>>18 違うと言えば違うし、たいして変わらないといえば変わらない。
お前がどう感じるかは、お前が使ってみないと解らないが
PCやOSが古いなどの理由がなければ2003にしておけ。
基本的に2003用のVBA解説本は2000でも通用するが、
一部使えない機能などはある。
因みに2001はMac用だろ
>>20 LEFT関数などの文字列操作関数でaと123に分け、
INDIRECT関数で参照する。
あとはヘルプ見てがんばれ。
Excel2000をXpで使用しています。
IF分でA1-A2>0の場合、セルのバックグラウンドの色と文字の色を変えるにはどうすればいいのでしょうか?
負の数字だった場合に変えるのは簡単なのですが、それ以外は分からないもので。
【1 OSの種類 .】 Windows 98〜XP(違うマシンでも)
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】
【4 VBAでの回答の可否】
【5 検索キーワード 】 "excel フォント 画面表示 列見出し 行見出し 開く" 等々を色々組み合わせた。
http://49uper.com:8080/html/img-s/86567.jpg http://49uper.com:8080/html/img-s/86568.jpg あるExcelファイルにAとBの2つのシートがあります。
シートBを表示したまま保存、その後ファイルを開くと、必ず85867.jpgのような表示になってしまいます。
そのままシートAに切り替えると、シートAの表示は正常。
その後、もう一度シートBに切り替えるとシートBの表示も正常になっている(85868.jpg)。
その状態で保存(シートB表示のまま)、その後ファイルを開くと、また85867.jpgの状態に......
シートAを表示したまま保存、その後ファイルを開くと、両シート共に正常表示です。
ただし、シートBを表示したまま保存、その後ファイルを開くとやはり85867.jpgの状態です。
シートBをコピーしたり複製してもダメ。
ググったりMSのナレッジも見たのですが、どうしても詳細な原因と解決策が見つかりません。
この現象についてご存知の方がおりましたら、お教えいただきたいのですが。
24 :
23:2005/10/07(金) 18:41:16
ぐえっ、訂正です。ごめんなさい。
85867 → 86567
85868 → 86568
>>22 ワークシート上の数式では書式設定出来ないので条件付き書式を使う
使い方はヘルプ参照
>>23 > ▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
> ・ バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
26 :
18:2005/10/07(金) 19:44:26
>>21 ありがとうございます。
2000は持っていてPCやOSも古いので、とりあえず2000でいきます。
2003用のVBA解説本は2000でもだいたいは通用するとのことで安心しました。
VBAの本をよんでもわからないことがあったら聞くのでよろしくお願いします。
27 :
名無しさん@そうだ選挙にいこう:2005/10/07(金) 22:35:14
997 名前:962[sage] 投稿日:2005/10/07(金) 20:41:31
ヘルプも読んだし、入門書も読んでますよ。
その上で調べまくっても見つからないことだから聞いてるわけで。
逆にそういう「回答を与えてやってる」側の人が、調べてすぐわかることなのか、どうかですよ。
他人のために調べろとまでは言わないけど、「調べてすぐわかりそう」なことでも、
意外とどこにも情報がないものってのはいくらでもあります。
「30秒くらいでできそう」なことに3日かかったなんてこと、いくらでもあるでしょ?
なので「当然同じような状況を経験して、熟知してるけど教えてやらない」って態度の人に、
ヒントくれって言ってるんです。
28 :
22:2005/10/07(金) 22:49:03
何か最近思うんだけど、
ヘルプ嫁とか正直どうでもいいんだけど。
何か一部の勘違い回答者気取りが、自分はヒントに徹して
勉強させて成長させようみたいな気取りかましてるけど、
正直イタイ。
そのどうでも良い回答とも呼べない回答レスが付いたために、
優良回答者が重複するため、回答機会をなくしてる結果につながるし。
初心者の質問を相手に優越感ですか?
ほほえましいです。
まぁ単純に>1の一行目な。
>分かる人はできるだけ回答して下さいませ。
わからない奴エセ回答者気取りは来るなと。
だって条件付き書式のところに「A1-A2>0」を入れて書式を好きなように設定するだけでしょ
既に式も出来上がってる以上、他に何を教えろと
それとも何か、1から10まで
上部にあるメニューバー(ファイル(F) 編集(E) 表示(V) などがあるところ)の
「書式(O)」という部分にマウスカーソルを合わせマウスの左側のボタンを押し、
その時表示されたサブメニューの中から「条件付き書式」という部分にマウスカーソルを〜
なんて解説しにゃならんのか?
ここはそこまで教えるスレじゃねーぞ
「条件付き書式を使え」は「分かる人はできるだけ回答して下さいませ。」に沿った必要充分な回答だ
>28
まぁ単純に>2の七行目な。
>▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
>・ 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
そして
>分かる人はできるだけ回答して下さいませ。
だが、分かる人は事細かに解説してくださいませ。ではないんだな。
クイズやなぞなぞのようなヒントじゃ回答とは言えないが、
何を使うかを教えて、使い方を調べさせるのはちゃんとした回答だよ。
何を使えば目的が達成出来るかを、ちゃんと回答してるんだからね。
というか、
> 負の数字だった場合に変えるのは簡単なのですが、それ以外は分からないもので。
ここまで出来て、これ以上の何が分からないのかが分からない。
32 :
20:2005/10/07(金) 23:58:17
>>21 うまくいきました、ありがとうございます!
回答は
>>20に対するものも
>>22に対するものもあまり変わらんだろう
しかし一方は教わったことを元に自力で結果を導き出し、お礼を言いに来る
もう一方は「教わった」ことにすら気付かず長々と文句を言いに来る
これが人としての程度の差ってやつですかねぇ( ̄ー ̄)ニヤリッ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
すみません。教えてください。
データ>並べ替え
って3つまで優先されるキーを選べますよね。これって3つ以上、出来ないものでしょうか?
所望のならびになったところを選択してまた並べ替えて行数を減らしてまた並べ替えってやっていけばいいのかもしれませんが、数がたくさんあって辛いです。
どなたかよい知恵がありましたらご教示ください。よろしくお願いします。
>>34 優先度の低いキーで先に並べ替えておき、
もいちど優先度の高いキーで並べなおすだけ。
並び替える目的が明確ではないが、オートフィルターで代用できないの?
>>34 1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
2 1 2
2 2 1
2 2 2
これはA列 > B列 > C列の優先度で昇順ソートしたものだが、
「C列昇順ソート→B列昇順ソート→A列昇順ソート」という処理をすれば結果は同じになる
優先度の高い方からソートを始めるから「行数を減らして」なんてことが必要になるわけで
優先度の低い方から始めれば全行ソートを必要キー分繰り返せばいいだけ
>>23 スレ違いだけど私もときどきこの現象に当たる。
うちはシート切り替えてもダメでCtrl+マウスのホイールで倍率変えると直る。
検索しようにもどういうキーワードでぐぐればいいのかわからなくてモヤモヤ。
39 :
34:2005/10/08(土) 01:25:32
レスありがとうございます。
>>36 いまひとつ分かりにくい説明ですみませんでした。
オートフォルタってよくわかってないもので、なんかこわくて(?)。
>>35 >>37 すごい…すごすぎます。感服しました。ありがとうございます。
明日会社行くのが憂鬱だったのですが、胸張って行けます。
40 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 01:34:50
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Exce2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
質問です。
表示形式を標準にしている状態で
セルに数字を打ち込んで行って
たくさん打ってから実は文字列で
入力しなければならなかった・・・
っていう時に一気に全部入力した物を文字列
認識に変換できる方法ってあるんですかね?
逆の文字列認識→標準(数値)認識の一発変換は
解るのですが・・・
よろしくお願いします。
計算結果とかではなく、直接入力した数値なら
表示形式を文字列にするだけで、値も文字列になるだろ
少なくともうちでは、標準表示形式で100と入力したあと、
セルの書式設定から表示形式を文字列にすると
セルの値は右寄せ基準の数値から左寄せ基準の文字列に切り替わる。>Excel2002
これで変換されないなら、表示形式を文字列にしてからコピーして値のみ張り付けてみな。
42 :
40:2005/10/08(土) 02:10:52
すいません質問のしかたが悪かったようです。
私が聞きたいのは
たとえば
100 ばか
200 あほ
とか入力してあって(この際100や200は文字列で入力)
これをVLOKUPとかで見に行こうとすると
標準認識で100とか入れても当然エラーになりますよね?
でこの場合、私は現在表示形式を文字列に直して
もう一度 100とかを再入力する これで解決はしますが
これが200列くらいあると面倒くさくって・・・
一発で認識してくれると助かるのですがどうしても方法が
解りません・・・
こんな感じで意味解りますかね?
よろしくお願いします。
余計意味不明。
用語も間違ってるし> VLOKUP、標準認識
具体的に現在どういう状態で、結果として何がしたいの?
オプションにFALSEを指定すればいいんだよ?
>>42 TEXT()した奴をVLOKKUPで探すんよ。
46 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 09:03:26
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Exce2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
お願いします。
A列 B列
10 10
10 20
10 10
10 15
10 33
というデータがあり、
A列とB列が同じである数
(この場合2)
をしめす関数は何でしょうか。
よろしければ実際の式も教えてください。
>>46 C1に=A1=B1
フィルコピー
=COUNTIF(C列範囲,TRUE)
作業列使いたくなければ配列数式
こっちが良ければ自分で書け
使うのはSUMとIFだ
(SUMだけでも書けるけどIF使うのが基本)
48 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 09:24:50
>>47 どうもありがとうございました。
作業列つかえないとしたら
配列数式ですか。
私には無理そうです。(・_・、
VLOKUP
VLOKKUP
ぷ
誤変換を2ちゃんで指摘するのは野暮っつー話はあるけど、
こういうスレでは正確に書こうぜ。
VLOOKUPだろ。VLOOKUP
>>48 別に作業列使えないとは書いてなかったからね
条件後出しするなら、その分は自分でやれってことで
まあ、10分も調べりゃ使い方わかるよ
51 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 09:55:53
>50
突然首突っ込むけど
SUMだけで書けるか?
52 :
46:2005/10/08(土) 10:20:44
>>47 何とかできました。(^o^;
どうもありがとうございました。
>>51 ごめんなさい。
If使ったのしか出来ませんでした。
>>51 TRUEは1、FALSEは0
これを使えば関数はSUMだけでいける
因みにVBA(VB)ではTrue=-1、CではTrue=1
キーボードマクロで右へ移動、つまりは→ボタンをクリックするという内容が
知りたくて、マクロを記録、確認してみたのですが、
Range("**").Select となります。
キーボードの→を押したという内容を書く方法を教えてください。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 キーボードマクロ エクセル 矢印 移動
>>54 キーボードじゃないけど、
ActiveCell.Offset(0,1).Select
で動くよ。
> キーボードの→を押した
正確にはSendMessage使うしかないが、
とりあえず→キーを送るならSendKeysでいいだろう
しかし、ひとつ右のセルを選択したいなら
アクティブセルからOffset(0,1)で良いのでは?
目的がはっきりしないから何を使うべきかは断言できないけど
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 すこしだけ
【4 VBAでの回答の可否】 可
開いているブックの全シートに対して実行するには
以下の処理をするには、どうすればいいのでしょうか?
Sub Macro1()
Cells.Select
With Selection
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Columns("F:L").Select
Range("L1").Activate
Selection.Sort Key1:=Range("F1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
End Sub
59 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 13:28:30
>>58 For Each s In 全てのシート
処理
Next s
60 :
58:2005/10/08(土) 13:55:06
>>59 ありがとう御座います。
それを具体的にどのように記述すればよいか
教えていただきたいのですが、お願いできませんか?
a1=1, b1=1
a2=2, b2=1
a3=4, b3=2
a4=7 b4=3
みたいな配置があるときに、「bn−1の値だけanから前に戻ったa列のセル」からanまでの範囲で最大値を出したいのですが、どうすればよいのでしょうか?
つまりb3=2なので、b3-1=2-1=1で、a3のいっこまえのa2とa3の最大値を返したい。
またb4=3なので、b4−1=3−1=2、a4の2こまえのa2からa4の間までの最大値を返したい。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 非
62 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 16:32:43
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 EXCEL ユーザー定義
その列に数字が入力された時。
○○番となるように、末尾に"番"を付けたいのですがどのようにしたら良いのでしょうか?
>>60 全てのシート → Sheets
全てのワークシート → Worksheets
処理 → s.Cells.処理
あとは自分でなんとかしな
>>61 OFFSET関数、MAX関数
関数の使い方はヘルプ参照
>>62 0番
0"番"
64 :
62:2005/10/08(土) 16:58:26
65 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 17:43:07
計算で出た数値を自動的に上から順に並び替えるやり方ってありますか?
計算で出たパーセンテージを高いほうから順に列ごと並び替えたいのですが。。。
A 100 60 60%
B 50 10 20%
C 100 90 90%
これをC、A、Bの順に並び替えたいです。
使用OS Windows XP
使用ソフト Word 3000 です
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
OS:WinMEでExcel2000のVBAで作ったマクロがExcel2003の環境で動かない。
VBの実行時エラー'1004'アプリケーション定義またはオブジェクト定義エラーです。
Excelのバージョンによって使えない定義もしくは文法がある?
67 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 17:43:20
エクセルのマクロの内容を他人に見せないようにすることは可能ですか?
パスワードでのロックなど、方法は何でもいいのですが。
68 :
58:2005/10/08(土) 17:48:50
>>63 なんとかなりません・・・。
選択されているシートでしか処理されません。
>>65 マルチはダメ
>>66 まずはコードを貼ってみよう
>>67 VBEメニューバーから ツール > プロパティ > 保護
>>68 書いてみたコードを貼れ
71 :
VBA1:2005/10/08(土) 18:34:08
>>71 可能
情報が少なすぎるのでそれ以上のことは何も言えない
アドバイスが欲しけりゃコードを貼れ
コードが欲しけりゃブックをうpしな
起動された時点でA1に現在の時刻(起動時の時刻)を書き込み
そのあとそれが再計算されないようにするにはどうすればいいでしょうか?
74 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 19:17:19
>>73 nowで拾って、マクロで起動した時にそのセルを値の上書きさせればいいんじゃない?
>>73 VBAで時刻代入
Workbook_Openなど、開いたとき1回限り動くイベントを使えば
再度閉じて開き直すまで自動で書き換えられることはない
つーか
> ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最初に環境やVBAの可否書かないなら、
後から使ってるverじゃその機能が無いとかVBA以外がいいとか言い出しても条件後出し扱いで放置だぞ。
ありがとうございました>74-75
77 :
58:2005/10/08(土) 20:02:13
>>69 おねがいします。
Dim s As Worksheet
For Each s In Worksheets
s.Range("AK40:AL57").Select
Application.CutCopyMode = False
Selection.Copy
s.Range("AM41").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.SmallScroll ToRight:=4
Application.CutCopyMode = False
Selection.Sort Key1:=s.Range("AM41"), Order1:=xlAscending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
Next s
78 :
VBA1:2005/10/08(土) 20:32:25
>>72 可能ですか、助かります。
ちなみに71のURLにあるコードをちょっと変える程度でいける
ものでしょうか?
Sub フィルタ表示()
Dim Db As Range
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
'シート名設定-------------------------------------------------
'シート名を変更する場合は対応させること
Set RecordSh = Sheets("Sheet1")
Set ResultSh = Sheets("Sheet2")
'------------------------------------------------------------
(次レスに続く)
>>77 Selectionはアクティブシートの選択範囲だ
Activateで処理シートをアクティブにするか、
Selectionを使わずRangeで範囲指定するかのどちらかにしな
ActiveWindow.SmallScrollを使いたいなら前者だな
80 :
VBA1:2005/10/08(土) 20:34:15
(続き)
'初期化
ResultSh.Rows("3:65536").Delete
'フィルター
Set Db = RecordSh.Range("A1").CurrentRegion
Db.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=ResultSh.Range("A1:Y2"), _
CopyToRange:=ResultSh.Range("A3"), _
Unique:=False
'結果表示
ResultSh.Activate
'件数カウント
lngRecCnt = ResultSh.Range("A1").CurrentRegion.Rows.Count - 3
MsgBox lngRecCnt & " 件該当しました", vbInformation
Set Db = Nothing
Set Sh1 = Nothing
Set Sh2 = Nothing
End Sub
よろしくお願いします。
81 :
VBA1:2005/10/08(土) 20:39:30
すいません、言い忘れましたが、やりたいことは
71のURL中で最初に質問されてる方とほぼ同じ条件で、
検索文字列を”等しい”ではなく”含む”にしたいんです。
エクセル2000でXPです。
Worksheet_Change(ByVal Target As Range)で
もしA1に値が入力されれば
・A1の値をコピー
・B1に移動
・貼り付け
・A2に移動
みたいな、一つのifに対して、複数の操作をしたいときの書き方がわかりません。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Selection.Copy 'A1をコピー
If Target.Column = 1 Then ActiveCell.Offset(0, 1).Select 'B1をアクティブ
If Target.Column = 1 Then Selection.PasteSpecial Paste:=xlValues '値を貼り付け
If Target.Column = 1 Then ActiveCell.Offset(1, -1).Select `A2をアクティブ
If Target.Column = 1 Then Selection.Copy Then Selection.ClearContents 'クリアー
わからないのでこんな風に If Target.Column = 1 を一杯書いたのですが、回りくどいとか見た目にダサいとかを別にして
コレはマクロとして正しい(=完動する??)内容なのでしょうか?
また、多分書き方としてはよくないと思うので、正しい書き方も教えてください。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows*XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 まだ使えません
【4 VBAでの回答の可否】 可
>>78,80,81
とりあえずAdvancedFilterメソッドの挙動を「含む」に変えることは出来ないが
AdvancedFilterメソッドの前にループでvalue="*" & value & "*"を回して自動的に"*"をぶち込めばいいじゃん
VBAが使えるかどうかを書いてないので、ある程度使える物と勝手に解釈して説明はここまでに止める
情報後出しはするなよ
>>82 「もしA1に値が入力されれば」というなら
If Target.Address(0,0) = "A1" Then
だな。その条件では「A1に」ではなく「A列に」だ
それと
If Target.Column = 1 Then
Selection.Copy 'A1をコピー
ActiveCell.Offset(0, 1).Select 'B1をアクティブ
・・・
End If
というふうに書いた方がいい
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlValues
は
ActiveCell.Offset(0, 1).PasteSpecial Paste:=xlValues
と書ける。そして張り付けるのが値のみならコピー→ペーストではなく
ActiveCell.Offset(0, 1).Value = ActiveCell.Value
とした方がいい
とりあえず最後の1行以外は間違ってはいないけど
対象がA1ならOffset使わずにRangeで参照した方がいいだろう
つーか
「A1に入力したら、B1に値をコピーしA2を消去」なのか
「A列に入力したら、ひとつ右のセルに値をコピーし、ひとつ下のセルを消去」
なのかわからん。最初の条件は前者だが、その下のコードは後者だしな
エクセル内から何らかの操作でエクセルのCPU優先度を挙げる方法ありませんか?
>>86 VBA、API
>>1に書いてある必要情報を書いてないので
こっちの情報もここまで
89 :
名無しさん@そうだ選挙にいこう:2005/10/08(土) 22:41:39
Excel 2003です。
210*445mmサイズの用紙に印刷したいのですが、
ファイル→ページ設定→用紙サイズの中にそのサイズがありません。
設定する方法はありますか?あるならば方法を教えてください。
よろしくお願いします。
210*445mmサイズの用紙に対応したプリンタを繋げてれば
用紙候補に出てくるはずだが
91 :
89:2005/10/08(土) 22:54:48
>>90 なるほど!プリンタの方で設定すればいいわけですね。
ユーザ定義サイズを設定したところ解決しました。
お早い回答どうもありがとうございました。
92 :
VBA1:2005/10/08(土) 23:03:46
>>83 情報ありがとうございました。
あまり慣れてないもので、質問の仕方がまずかったことを
お詫びしておきます。
自分で何とかしようと色々調べながらvalue="*" & value & "*"を試して
いるのですが上手く行かなくて・・・戻ってきてしまいました。
VBAはネットで拾ったのをちょこちょこ調べて今みたいに自分なりの使い勝手を
模索する程度です。
もう一度力を貸してもらえるとうれしいです・・・
> 自分で何とかしようと色々調べながらvalue="*" & value & "*"を試して
> いるのですが上手く行かなくて
そのうまくいかなかったコードを貼ってみましょう
まったく初心者って言えばなんでもいいのか?
回答者ってのは神様なんだよ
愚民どもは平伏せっての
別板から誘導されて来て見たんだが
このスレの回答者って>94みたいなのばっかり?
>>95 まあ上見てみりゃ判るだろうが、こんなんばかりでもない。
だが、基本的には回答者ってのは俺も含めて、えらそうなことを初心者に言って
優越感に浸りたいからやってるってのは否定できない。
世の中には、「はつみみです」なんてエラそうに言って、他人を見下したいがために
「情報共有」を名目にした巨大サイト立てるヤツもいるしな。
> 別板から誘導されて来て見たんだが
とっても素敵な言い分ですね
いくらIDでないからって(以下略
99 :
VBA1:2005/10/08(土) 23:25:11
>>93 AdvancedFilterメソッドの前に貼ってみましたが頭の*が
どうも利いてないようで上手く結果がでないんです。
たとえば "リ" という言葉で検索するとしてマクロを実行
した場合、検索対象範囲の中に
アクエリアス
ポカリスエット
オレンジジュース
リンゴジュース
があったとき、リンゴジュースは抽出されるのですが
アクエリアスとポカリスエットが抽出されないんです。
'初期化
ResultSh.Rows("3:65536").Delete
'フィルター
Set Db = RecordSh.Range("A1").CurrentRegion
value="*" & value & "*"
Db.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=ResultSh.Range("A1:Y2"), _
CopyToRange:=ResultSh.Range("A3"), _
Unique:=False
上のようにしました。
100 :
よくわからないので:2005/10/08(土) 23:30:44
質問があります。WindowsXPでExcel2000を使ってます。
ひとつのセルの文字列を、別のシートのひとつの列すべてとマッチングさせて、一致
すれば何らかの文字列を返すという場合、どの関数を使えば良いですか?いろい
ろググって見ましたが、どうもいまひとつわからないので、よろしくお願いします。
>>98 いや、違う
>>99 それが調べた結果なの?
全く調べず意味も分からず貼っただけのように見えるが
valueってのはRangeオブジェクトのプロパティだぞ
(他でもvalueプロパティは使うけど)
>>100 COUNTIFの結果が1以上の場合にIF関数で任意文字列を返せばいい
102 :
よくわからないので:2005/10/08(土) 23:49:59
103 :
VBA1:2005/10/09(日) 00:02:25
調べてはいるけど意味はわからないしうまくいかないし
もう時間がないよ・・・
どう書けばいいか教えてもらえませんか。
今VBAの仕組みをネットで見てるけどとてもじゃないけど
明日までに間に合いそうにない・・・
スレのルールに従わない奴にコード書いてやることもないだろう。
> ・ 2回目以降の質問では名前欄に初回質問の番号を入れよう。
コードが欲しかったなら次回から気を付けようね。
まあ、今回は諦めて自分でなんとかしな。
105 :
58:2005/10/09(日) 00:24:41
>>79 ありがとうございました。
(正直、お手上げです)
106 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 01:24:01
>>103 For Each hoge In resultsh.Range("a2:y2")
hoge.Value = "*" & eCell.Value & "*"
Next
最近hogeさんがいないな・・
107 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 01:31:54
>>105 rangeセレクト前に
s.Activate
つっこめ
108 :
VBA1(71/78/80/81/92/99/103):2005/10/09(日) 07:36:38
(以後71で書き込みます)
>>106 もう半ば諦めざるをえないと思っていたので本当にたすかります。
マジでありがとうございます!
いざマクロを実行してみるとオブジェクトが必要とのメッセージが
表示されるのですが、
hoge.Value = "*" & eCell.Value & "*"
この部分の前にSetとかで何か指定するということでしょうか?
110 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 09:42:14
>>65ですが誰か教えてください。。。お願いします
データをコピペして一覧を作っているのですが、
元データに太字やフォントの違いがあり、
1セル入力するたびに決められた書式にしています。
自動で決められた書式になるようになれば助かるのですが、
マクロをいじるしかないのでしょうか。
初心者質問ですみませんがお願いします。
114 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 14:06:26
115 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 14:13:34
エクセル2000です。
複数の.xlsファイルのデータを追加するのに、いままでは「開いて閉じて開いて閉じて・・・」を
20回ぐらい繰り返していました。
ふと、ひとつの.xlsファイルの中に、シートとしてほかの.xlsファイルの内容を入れると楽だと考えたのですが
複数の.xlsファイルの各シートを、ひとつの.xlsファイルの中に移動することはできますか?
どうしたらいいでしょうか?
シートのタブのところで右クリックしたら、シートの移動またはコピーというのが出るので、
それで移動(コピー)するか、
開いた複数のブックを並べて表示して、シートのタブをドラッグして移動する
117 :
115:2005/10/09(日) 14:45:01
>>116 ありがとう。これですっごくラクになります。
118 :
71:2005/10/09(日) 15:06:28
119 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 15:42:04
>>114 案外
>>110はワードとエクセルの区別が付いてない(だけど2chに書き込む知恵はある)人かも。
以前、オークションで売り買いが出来てタグでコメントも書ける人に「年賀状作るとき複数の
写真を入れるのはどうするの?」と尋ねられ、「使っている年賀状のソフトは?」と聞いたら、
「ソフトって何?」と逆に尋ねられたことがある。そんな人もいるよ。
120 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 16:56:28
エクセルの関数についてわからないことがあります。
表を作成しているのですが、
「COUNT」「COUNTA」等で、数値の入ったセルを数えるように、
罫線を用いて斜線等をいれたセルを数えることのできる関数はないでしょうか?
>>120 残念ですがありません。
書式(罫線を含む)がからむワークシート関数というのは、ほとんど
用意されていません。
例外がTEXT関数、CELL関数くらいですが、これも表示形式しか
扱いませんし、今回の用途には不適です。
>>120 ワークシート関数には無い
ユーザー定義関数使えばできる
必要な情報が書いてないので、こちらの情報もここまで
具体的な方法が知りたかったら次回から気を付けましょう
123 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 17:25:23
5:30→5.5
17:15→17.25
のように時間を10進法に変換する方法はどうするのでしょうか?
124 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 17:29:51
学校でエクセルやってるけど全くついていけない。ABC分析とか構成比とか本屋でエクセル辞典みたいな本買ったけどわからない。みなさんはどうやって身に付けたのですか?
126 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 17:33:04
すぃません。どこのスレ行けばイイですか?
>>124 本当に本読んで分からない?
それならまず国語からやったほうがいい
本人が気づかず学習障害になってる場合があるから
あと煽りじゃなくて一度病院いったほうがいいかも
128 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 19:00:54
わかりました。ありがとうございましたm(__)m
130 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 19:43:15
MOSって何ですか? 初心者ですいませんm(__)m
> ▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
> ・ 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
132 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 20:24:02
>>118 For Each hoge In resultsh.Range("a2:y2")
hoge.Value = "*" & hoge.Value & "*"
Next
をフィルターの前。今更だが。
>>130 初心者だから許されると思うな
少しは自分で調べてから質問しろよ屑
134 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 22:16:36
はい。もう諦めます。すいませんでしたm(__)m
135 :
名無しさん@そうだ選挙にいこう:2005/10/09(日) 23:00:59
ex)
"5"と入力したら"05","10"と入力したら"10"というふうに
2桁表示させたいのですが、どうすればいいでしでしょうか?
>>135 書式の表示形式・ユーザー定義で 00 とか
これからマクロを学習しようとするものですが
オススメの本とかありますか?
>>137 おまえが実際に読んでみてわかりやすいと感じた本がオススメ
141 :
137:2005/10/10(月) 00:53:42
探してみまつ。
まぁ初心者の入門用ならそう変わるもんでもないかもな
EXCELでその文字列が特定キーワードを含んでいるかどうかを
判定させたいのですが、うまくいきません。
例えば業種で一般自動車運送業とあった場合、
「運送」「自動車」のいずれかがあれば、
答えをTrueにして返したいのですがどのようにしたらよいでしょうか?
失敗例 if(A1="*運送*","YES","NO")
質問させていただきます。
VLOOKUP関数をコピペするときに、参照する値を固定したいのです。
=IF(L77="","",VLOOKUP(L77,sheet!A22:B33,2,FALSE))
この中の sheet!A22:B33 の部分です。
コピペすると、 sheet!A23:B34 となったりしてしまいます。
>>142 こんなのしか思いつかん。
頭のいい方、フォローよろしく。
=NOT(AND(ISERROR(FIND("運送",A1)),ISERROR(FIND("自動車",A1))))
いちおう、こういう結果は出る。
自動車運送業 TRUE
自転車運送業 TRUE
自動車運搬業 TRUE
自転車運搬業 FALSE
>>142 例えばこんなのとか
=IF(OR(NOT(ISERROR(FIND("運送",A1))),NOT(ISERROR(FIND("自動車",A1)))),"YES","NO")
147 :
143:2005/10/10(月) 11:12:57
>>144 ありがとうございました。
解決しました。
148 :
142:2005/10/10(月) 11:17:24
149 :
146:2005/10/10(月) 11:47:45
こっちの方がすっきり
=IF(OR(ISNUMBER(FIND("運送",A1)),ISNUMBER(FIND("自動車",A1))),"YES","NO")
150 :
名無しさん@そうだ選挙にいこう:2005/10/10(月) 11:54:20
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Excel2000 リンクを外す
メールアドレスを入力した時に勝手になってしまう
ハイパーリンクを解除したいのですができずに困っております。
一応、ぐぐってみたところ、 右クリックで一つずつ
消す方法は分かりましたが、できないものもあります。
また、これから入力するメールアドレスはハイパーリンク
しないように設定したいのですがどうすればよいのでしょうか?
ご教示お願い致します。
>>150 現在リンクになってるものは、手動でやるかマクロでやるかのどちらかだ
今後のことは「インターネットとネットワークのアドレスをハイパーリンクに変更する」の
チェックを外せば良いが、これは確か2002以降の機能だな。使いたければバージョンアップしな。
152 :
名無しさん@そうだ選挙にいこう:2005/10/10(月) 12:56:55
PDFファイルをExcelに表示したいのですけど
PDFを保存して、Excelで開いても変な文字列しかでてきません・・・
どうすればいいのでしょうか?
現在のExcelはPDFに対応してません
なのでどうしようもありませんね
Excelで開ける形式に変換してからなら開けるけど
直接PDFを開くのは無理
因みに変換の仕方はスレ違いなのでここでは聞かないように
154 :
名無しさん@そうだ選挙にいこう:2005/10/10(月) 13:16:20
>>153 そうなんですか・・・
ありがとうございます
155 :
名無しさん@そうだ選挙にいこう:2005/10/10(月) 14:01:01
>>151 150です。ありがとうございました。
やっぱりできないんですね・・・。
バージョンアップを考えてみます。
>>150 VBAが否なので余計なお世話かもしれんが。
Private Sub Worksheet_Change(ByVal Target As Range)
With Application
.EnableEvents = False
If .CommandBars(1).Controls(2).Controls(1).Caption = "元に戻す(&U) ハイパーリンク" Then .Undo
.EnableEvents = True
End With
End Sub
漏れはこれで回避してる(XL2K)。
157 :
名無しさん@そうだ選挙にいこう:2005/10/10(月) 15:20:45
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 WindowsXP1
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 少し
【4 VBAでの回答の可否】 可
表示→全画面表示について教えてください。
あるブックを起動した際、自動的に全画面表示にするようなマクロを書きました。
当然その通り起動時に全画面表示になるのですが、困ったことがあります。
それは画面の上部下部がどうしても隠されてしまうのです。
画面の上部はエクセルウィンドウのタイトルバー
______________
| |X|Microsoft Excel -
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
これが隠れてしまい、
画面下部ではステータスバー
____________________
| コマンド | NUM | | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
これがタスクバーによって隠されてしまいます。
で、タスクバーを一度下に下げて、もう一度定位置に戻してやると、どちらもヒョコっと元に戻って
ちゃんと表示されます。
これは>2にあるバグ・動作上の不都合などに当てはまるのでしょうか?
それとも何かの設定によって回避できるものなのでしょか?
どうぞよろしくお願いします。
> ______________
> | |X|Microsoft Excel -
>  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
> これが隠れてしまい、
当然。
それを隠すのが全画面表示というもの。
> ____________________
> | コマンド | NUM | | |
>  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
> これがタスクバーによって隠されてしまいます。
当然。
それを隠すのが全画面表示というもの。
逆に
> タスクバーを一度下に下げて、もう一度定位置に戻してやると、どちらもヒョコっと元に戻って
> ちゃんと表示されます。
がバグだな。「ちゃんと表示されます。」ではなく「表示されてしまいます」だ。
うちでは再現しない。>WinXP/Excel2002
お前の書き込みを見ると、全画面表示じゃなくて、
ツールバー・メニューバーのみを非表示にすれば良いだけのような気がする。
159 :
名無しさん@そうだ選挙にいこう:2005/10/10(月) 16:31:30
昔エクセル使ってたときは、クリックアンドドラッグで選択した範囲の
数値の合計が右下に表示されたように思うんだが、この間仕事の出先で
たまたま使ったときには表示されなかった。あれ表示されるといちいち
SUMとか使わんでもちょっとした合計知りたいときに便利だったのに・・・
>>159 そのバーの上で右クリックして「合計」を選べば出ると思うぞ。
同じ右クリックで「なし」を選んでると表示されない。
163 :
仕様書無しさん ◆.CzKQna1OU :2005/10/10(月) 19:07:47
質問です。
VBAを使うと、メニューバーとかツールバーを操作できるんでしょうか?
たとえば、メニューバーの中から何かを選択して実行させるような仕組みをです。
教えてください。お願いします。
>>163 操作できるよ
興味があるなら「CommandBars」でVBAヘルプを検索してみな
166 :
名無しさん@そうだ選挙にいこう:2005/10/11(火) 00:28:43
質問です。お願いします。
Nfirm = Cells(1, 2) ← 12 です
Ndata = Cells(2, 2) ← 240です
BS1.Cells(Ndata + 1 + i, -2) = BS1.Cells(i, -2)
ここの列の −2 というのがいまいちわかりません。 ここはBS1が (3,4)なので 列は 2 なのでしょうか?
Sub MakeData()
Dim Nfirm As Integer, Ndata As Integer, i As Integer, j As Integer
Dim BS1 As Range, BS2 As Range, BS3 As Range
Worksheets("Data").Select
Nfirm = Cells(1, 2)
Ndata = Cells(2, 2)
Set BS1 = Range("D3")
For i = 1 To Ndata
BS1.Cells(Ndata + 1 + i, -2) = BS1.Cells(i, -2)
BS1.Cells(Ndata + 1 + i, -1) = BS1.Cells(i, -1)
BS1.Cells(Ndata + 1 + i, 0) = Log(BS1.Cells(i, 0))
For j = 1 To Nfirm
BS1.Cells(Ndata + 1 + i, j) = Log(BS1.Cells(i, j))
Next j
Next i
〜省略〜
End Sub
何がやりたいの?
何が知りたいの?
もしかしてCellsがRangeオブジェクトからの
相対位置を指定出来ることも知らないのか?
普通に受け答えできないやつが相談スレに居座るから
雰囲気悪くなってるんだね。ネットに依存してるんだろうけど迷惑な話だ。
(´-`).。oO( この子、どうしたんだろう・・・ )
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
すみません、あまりに初歩的なことですが教えてください。
A列に整数が入っていて、それに「Kg」とつけたいのです。セルの書式設定のユーザー定義というのを使う、というところまでは分かったのですが、その先が分かりません。
どうやればセルの数字にKgがつくのでしょうか?
また印刷には反映されますか?ただの数字しか印刷されないということはないでしょうか。
よろしくお願いします。
>>170 #"Kg"
セルに表示されれば印刷もされる。
後は2003なら、「ユーザー設定 表示形式」でヘルプを引いて読め。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2002sp3
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
すみません教えてください。
シート内の入力数値が変更された場合に、変更された日付をシート内のセルに表示したいです。
today()コマンドを使うと閲覧のみでも日付が変わってしまいます。変更がなかった場合は
前回の変更日を表示するようにしたいです。よろしく御願いします。
173 :
170:2005/10/11(火) 12:22:12
>>172 ヒント:WorksheetのChangeイベント
176 :
172:2005/10/11(火) 20:44:29
>>174-175 レスを有り難うございます。
出来ればもう少し易しいヒントを、もうちょっと噛み砕いて説明して頂けると
有難いのですが。
宜しく御願いいたします。
177 :
名無しさん@そうだ選挙にいこう:2005/10/11(火) 21:00:50
セル内の数式のみの保護をしたいのですがどうしたらいいでしょうか?
>>172 よくみたら2番目は大してヒントになってなかったので、ごめん。
日付がF1に入ってほしいとして
該当するシートオブジェクトに、
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
ActiveSheet.Range("F1").Value = Date
Application.EnableEvents = True
End Sub
シートオブジェクトがわからないなら
>>11
>>177 数式が入ってるセルのみをロックしてシートの保護
180 :
177:2005/10/11(火) 21:45:17
ありがとうございます。最後の質問です。
シートの保護の、「データ」「オブジェクト」「シナリオ」
のチェックはどうするんでしょうか?
お好きなように
保護中でも編集したければチェックを入れ
編集したくなければ(させたくなければ)チェックを外せばいい
「オブジェクト」や「シナリオ」が何か解らないってなら
そのくらいはググれ
182 :
名無しさん@そうだ選挙にいこう:2005/10/11(火) 22:05:30
日付の表示のことですが、A1=10、B1=08で、C1に10/8のように表示させたいのですが、
分数として認識されているようで、5/4となります。どなたか知恵を貸してください。
>>182 文字列として表示させたいなら=A1&"/"&B1、08を8にしたいならVALUE(B1)
シリアル値で表示したいなら=DATE(YEAR(TODAY()),A1,B1)、書式を数式で指定したければTEXT(値,"定義式")
184 :
名無しさん@そうだ選挙にいこう:2005/10/11(火) 22:30:14
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
列に
http://の抜かれたURLがあります。(例:pc8.2ch.net)
ただし全部埋まってるわけでなく空白セルもあります
これをURLのある場所だけ
http://を接頭に付けて かつ、すべてハイパーリンクでIEで開くように連携するようにするには
どうすればいいのでしょうか?
URL以外が書かれてあるセルもあるの?
その場合、URLとURL以外の判断は機械でもできる?
>>184 =IF(ISBLANK(A1),"",HYPERLINK("
http://"&A1))
を作業列に入れてフィルコピー
参照先は勝手に書き換えて
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
234325-6546-34556-234234
のように"-"で区切られた1桁〜6桁の数字が1つのセル内(A1)に記述されてます。
これをB1,C1,D1,E1にそれぞれ234325,6546,34556,234234と書き出したいのですが
『"データ">"区切り位置"』を使わずに(数式で)する方法はありますか?
上記のような"-"付のセルはA1〜A100くらいまであり、また、"-"前後の桁数はまちまちです。
>>188 > 【4 VBAでの回答の可否】 可・否
ここまでは最低必須情報
テンプレ形式じゃなくてもいいが答えなくちゃダメ
> ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
>>187様
有り難うございます。
とりあえず元の行はどっかまで持って行って入れ替えたのですが
元の行と出来た結果を入れ替えるのは不可能でしょうか
191 :
188:2005/10/11(火) 22:56:10
>>189 申し訳無いです。
【4 VBAでの回答の可否】 否
でお願いいたします。
>>190 お好きなようにどうぞ
>>191 含まれる"-"の数は固定?、可変?
可変なら最大いくつ?
193 :
182:2005/10/11(火) 23:07:59
>>183、できました。どうもありがとうございました。
194 :
188:2005/10/11(火) 23:10:39
>>194 B1に=MID($A1,F1+1,G1-F1-1)を入れてE1までフィルコピー
F1に=0
G1に=FIND("-",$A1,F1+1)を入れてI1までフィルコピー
J1に=LEN(A1)
後は必要な数だけフィルコピーしな
F〜Jは非表示にしてもいいし
196 :
188:2005/10/11(火) 23:40:24
>>195 ありがとうございます。思い通りの結果になりました。
197 :
195:2005/10/11(火) 23:43:28
ゴメン、1カ所間違い
×J1に=LEN(A1)
○J1に=LEN(A1)+1
>>195じゃ4つ目のケツが1桁欠ける
198 :
17:2005/10/12(水) 00:09:21
前回は回答ありがとうございました。
あれから、頂いた回答を元にやってみたのですが、
Dim FoundCell As Variant
With Worksheets("Sheet1")
Set FoundCell = .Range("A2:A150").find("12345678")
Range(FoundCell.Address).Select
Selection.Offset(1, 0).Select
If Cells = "99999999" Then
ActiveCell.Formula = "77777777"
End If
End With
としてみたところ、「実行時エラー'13': 型が一致しません」と
if文のところでエラーが出てしまいます。
variantのところを他の定義に変えても何かしらのエラーがでます。
これはどのように回避すれば良いのでしょうか。。。
どうぞよろしくお願いいたします。
Cellsの使い方が違う。
値を比較したいんだよね?
Dim FoundCell As Range
With Worksheets("Sheet1")
Set FoundCell = .Range("A2:A150").Find("12345678")
End With
If Not FoundCell Is Nothing Then
With FoundCell
If .Offset(1, 0).Value = "99999999" Then
.Value = "77777777"
Else
MsgBox "ちがった", vbExclamation, "99999999"
End If
End With
Else
MsgBox "なかった", vbExclamation, "12345678"
End If
200 :
199:2005/10/12(水) 00:20:21
インデント失敗
Dim FoundCell As Range
With Worksheets("Sheet1")
Set FoundCell = .Range("A2:A150").Find("12345678")
End With
If Not FoundCell Is Nothing Then
With FoundCell
If .Offset(1, 0).Value = "99999999" Then
.Value = "77777777"
Else
MsgBox "ちがった", vbExclamation, "99999999"
End If
End With
Else
MsgBox "なかった", vbExclamation, "12345678"
End If
×
With FoundCell
If .Offset(1, 0).Value = "99999999" Then
.Value = "77777777"
○
With FoundCell.Offset(1, 0)
If .Value = "99999999" Then
.Value = "77777777"
じゃないの?
202 :
17:2005/10/12(水) 01:15:02
>>199,201
ありがとうございます!
お二人の書かれた式で上手く行きました。
あと
>>18さんが書かれていたように
対象の列はuniqueなのでこれで無事解決できそうです!
しかし、どうも自分はまだVBAの式の使い方なんかが
根本的に分かっていないようなので更なる精進に努めます。
どうもありがとうございました!
203 :
17:2005/10/12(水) 01:16:37
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
すみませんが、教えてください。リンクの更新に関するものです。
新規ブックを作り、他ブックからのシートのコピペ、データ範囲(A1:M20など)のコピペをします。それを保存して閉じて、開くと「このブックには、ほかのデータソースへのリンクが含まれています」と出てしまいます。
この表示をなくすだけではなく、根本的にリンクが張られないようにしたいのです。
調べたところ、ファイルを作った後で、編集>リンクの設定...でリンクの解除はできるようですが、新規ブックを作る際になにかのチェックを入れるとかで、リンクが作成されないようにするにはどうすればよいのでしょうか。
(将来的にはVBAでの解決を試みます。今はぜんぜん分からないのですが、毎日作る数が多くて…)
よろしくご教示お願いいたします。
205 :
名無しさん@そうだ選挙にいこう:2005/10/12(水) 12:38:28
206 :
204:2005/10/12(水) 13:03:00
>>205 レスありがとうございます。
データ範囲のほうは値のみでもよいのですが、きれいに色や罫線を設定したものはシートごとペーストしています。
シートのペーストをしても更新が出ないようにできればいいなあと思っているのですが…
207 :
名無しさん@そうだ選挙にいこう:2005/10/12(水) 15:05:30
>>204 なんでだろう。私が今やってみたらリンクのコピーにはならない。
エクセルの表(数式入り)を開き、新規ブックも開いてウィンドウ
の設定で左右に配置。
元の表のシートを右クリックして移動またはコピーをクリック、
コピーにチェックをつけ、コピー先を新規ブックにする。
それで新規ブックに名前を付けて保存したら、数式とかそのまま
きれいに張り付いていて、元の表からリンクしていないよ。
何で私のはそうなって、あなたのはリンクされるんだろう。
209 :
名無しさん@そうだ選挙にいこう:2005/10/12(水) 19:42:06
数字を入力して時間表示させたいのですが、どうしたらよろしいでしょうか?
例
2→2:00
48→48:00
会社で、年度別に人口の推移を男女別にエクセルでグラフにしたいのですが、どうしたら良いでしょうか?
たとえば今の人口が1億2千万人として、2010年は1億、2011年は9000万、2012年は7000万と言うような
グラフを作りたいのです。(もちろん実際は1年でそんなに減りません)
自分で作ると、その年に何人減るのかはできるのですが表がジグザグになります
つまり、2010年だと、男は1千万人、女が1500万人だけど、2011年だと男が2千万人、女が2000万人という感じに・・・
前年より高くなっている年もあるのであ当たりまえですが、1億2千万と言う数字は固定で、
そこから年が経つごとに何人減っていくのかと言う表を作りたいのです。
一番左上から、徐々に下降していく表だと考えてください。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
エクセル グラフ
↑これだと、凄い件数ヒットして、どれかどれかわかりません;;
>>209 =TEXT(A1/24,"[h]:mm")
>>210 数学.....いや、算数の問題だ
ここで聞くべき内容じゃない
Excelのコメントについて
一定範囲(例えばa1:c7とか、どこでもいいんですが)を選択した状態でコメント
を挿入しても一番左上のマークが付いたセルのところにマウスを持っていかない
とコメントが表示されないのは仕様?
その範囲内にマウスを持っていけばコメントが表示されるようにしたいとかって
出来ません?
Excel2000 SR-1 OS:2000 SP3
Excel2002 SP3 OS:XP ProSP2
出来ません。
諦めまつ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
文字列の数字を計算で使える数字に変換するにはどのような関数を使えば良いのでしょうか?
A1に425uiotのように3桁の数字+文字が入っており、
B1にleft関数で425(文字列)を抜き出しました。
同様にA2,B2〜A100,B100くらいあり、最終的にはB1:B100の数字を使い他の計算を行いたいのですが
文字列のままなので計算には直ぐに使えないので・・・
よろしくお願いいたします。
218 :
名無しさん@そうだ選挙にいこう:2005/10/12(水) 22:05:19
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
「ツール」バーにある「マクロ」で、コントロール+任意のキーで実行する
マクロを作り、使っています。
しかし、マクロを実行するたびに上書き保存がされ、動作が遅くなり困っています。
マクロが実行されるたびに保存をすることを中止させるには、どうしたらよいのでしょうか?
よろしくお願いします
自動記録したマクロのコードに保存のコマンドが入っているのでは?
Saveとか書いてある行がないですか?
220 :
218:2005/10/12(水) 22:10:28
>219
ありがとうございます。
「マクロのコード」をどこで見るのかわからないので、
今探しています。
221 :
218:2005/10/12(水) 22:12:28
>219
ありました。「編集」で見られるところですね。
「save」やそれらしい単語はなさそうです…
コードをそのまま省略せずに貼ってみな
223 :
218:2005/10/12(水) 22:15:58
>222
Keyboard Shortcut: Ctrl+x
'
ActiveCell.Offset(6, 1).Range("A1").Select
Selection.Cut Destination:=ActiveCell.Offset(-1, 2).Range("A1")
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.Cut Destination:=ActiveCell.Offset(-2, 4).Range("A1")
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.Cut Destination:=ActiveCell.Offset(-3, 6).Range("A1")
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.Cut Destination:=ActiveCell.Offset(-4, 8).Range("A1")
ActiveCell.Offset(-3, 0).Rows("1:4").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(0, 1).Range("A1").Select
End Sub
お願いします
224 :
218:2005/10/12(水) 22:17:28
あ、すみません、わかりました
225 :
218:2005/10/12(水) 22:22:11
どうもありがとうございます。
勉強になりました。本当にありがとうございました。
…と、個人的には非常に晴れ晴れした気持ちなのですが、
つまらぬ問題で皆様にご面倒をかけて申し訳なかったです…すみませんでした。
それでは失礼します。
227 :
名無しさん@そうだ選挙にいこう:2005/10/12(水) 23:58:51
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
文字列の最初と最後に付いているダブルクォートを取り除きたいけど
やりかたがわかりません。
"AABBCC"
↓
AABBCC
以下の STRに "AABBCC" が入っている場合、単純に
Cells(1, 1).Value = Replace(STR, '"', "")
じゃ駄目でした。
ご教示お願い致します。
Replace(STR, """", "")
最初と最後だけでなく中間にある"も消えるけど
Replace使ってるってことは、それは問題無いんでしょ
下記の内容のテキストファイルがあります
項目01[tab]sample01
項目02[tab]sample02
項目03[tab]sample03
項目04[tab]sample04
項目05[tab]sample05
をエクセルに取り組みたいのですが可能でしょうか?
ファイル数が600個なので下記に手動で並び替えるという方は無理です
(正規表現で置き換えられるならOK。sample**の所はそれぞれ異なります)
項目01[tab]項目02[tab]項目03[tab]項目04[tab]項目05[tab]
sample01 sample02 sample03 sample04 sample05
どなたかやり方わかりませんか?
>>229 Dir関数やFSOのFilesコレクションで600個のファイルのパスを取得し
Line InputメソッドやFSOのReadLineメソッドで行を読込み、vbTabでSplit
Cellsプロパティの引数を、通常とは逆にしてシートに書き込み
以上
必要な情報が書いてないので、VBAは使える物だと勝手に判断しました
情報、条件の後出し(VBAは解らないだとか、VBA以外でだとか)はしないでくださいね
231 :
229:2005/10/13(木) 00:59:23
すみません。今日はじめてこの板に来て
本スレの>1辺りを見ていませんでした。
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード(日本語ページのみ)
>230さんが回答を出してくださってるみたいですが、理解できません
すみません。具体的にそれを行うのでしょうか?
情報後出しはダメ
次回から気を付けようね
万引きして捕まってから金払っても犯罪は犯罪
ルールを無視して書き込んだら、指摘されてから書き直しても
ルール違反はルール違反
書き直したくらいで回答貰えると思わない方がいい
何でもやり直しが効くと思ったら甘いぜ
まあ、Excelの質問掲示板なんて腐るほどあるから
急ぎなら他で聞きな
> すみません。今日はじめてこの板に来て
> 本スレの>1辺りを見ていませんでした。
と謝って置きながら、PC初心者板にマルチし、向こうのルールである
> ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━━━━━━
> ★E-mail欄には何も記入しない★ (IDを出す→偽者対策・質問者の区別、2回目以降も)。
を無視してsageで質問。
ホントにこいつは救いようが無いなw
2chの中だけでマルチというのもなぁ
外には無いと思ってるのかね。
238 :
227:2005/10/13(木) 10:20:07
>>228 求めていたやりかたです。
ありがとうございました。
239 :
172:2005/10/13(木) 11:04:55
>>178 有り難うございます。希望通りの動作をしてます。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
ある一つのフォルダに複数のファイルが入っています。
フォルダ─A─a─@
│ │ └A
│ │ └B
│ └b─@
│ │ └A
│ │ └B
│ │ └C
│ └c─@
│ └A
│ └B
└B─a─@
・
・
・
あくまで例ですが、上記のようになっています。
これを上のような樹系図としてExcelに出力させる
事は可能でしょうか?
宜しくお願い致します。
241 :
204:2005/10/13(木) 11:19:35
>207
ほんとですかorz
>208
式はそのシート内で完結しています。シート内の数値は、他のシートの式で使っています。
【4 VBAでの回答の可否】 可。お願いします
現状、相変わらずリンクされていますので以下の処理をVBAでやろうかと思っています。
編集が終わって閉じている、リンクされてしまったブックを開いて
編集>リンクの設定、でリンクを解除相当のプロシージャを作りたいと思います。
しかし、任意の文字列をあらわせずに弱っています。感覚的には
ActiveWorkbook.BreakLink Name:= *, Type:=xlExcelLinks
という感じで実現したいと思っています。
リンクされている参照元ブックはひとつです(できれば複数の参照元ブックでも対応できる方法を教えていただければとおもいますが)。
どうかよろしくご教示お願いいたします。
>>240 可能だけど、自分でコード書けないなら、
そういう樹系図をテキスト出力出来るツールを使って
出力されたテキストをExcelにコピペしな
ファイルリストを樹系図形式でテキスト出力出来るツールは
Vectorとかにいくつも転がってる
243 :
名無しさん@そうだ選挙にいこう:2005/10/13(木) 13:22:19
>>240 コマンドプロンプトで
tree > hoge.xls
だな。
>243
m9(^Д^)プギャー
CNA ←これだけを1つのセルにを半角で入力したいんだけれど、どうすればいいですか?
そのまま入力すると強制的にCANにされてしまいます。
>>243 お前は
tree /?
を見て置いた方が良さそうだな
それにtreeはフォルダにしかラインが入らない
>>245 >>7読め
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 多少
【4 VBAでの回答の可否】 可
質問させてください。以下のマクロSを実行すると、ファンクションFが呼ばれてしまいます.。ファンクションの戻り値の文字列が欲しいだけなのですが。
Function F ()
処理
F = 処理の結果生まれた文字列
End Function
Sub S ()
Debug.Print "ファイル名は” & F & "です"
End Sub
よろしくご教示お願いします。
Fを呼ばなきゃFの戻り値が得られないだろ
何回も呼ぶということなら最初の結果をどこかにとっておく
249 :
247:2005/10/13(木) 14:24:13
>>248 レスありがとうございます。
Sub S ()
Dim strX As String
F '意図通りFに飛びます。
strX = F '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''ここでFに再び飛んでしまいます。
Debug.Print "ファイル名は” & F & "です"
End Sub
なにか根本的な誤解をしているのでしょうか。教えてください。お願いします。
250 :
240:2005/10/13(木) 14:28:41
>>249 コード全体と、具体的に何がしたいのかを書きな
何がやりたいのかも書かずに、コードも省略されたんじゃわけわからん
>>249 もしかして呼ぶのと戻り値を取り出すのとは別々の動作で行なうと思ってますか?
>>249 その書き方だと3回実行されるんじゃないの。
strX = F()
debug.print strX & "です"
だけでいいような。
254 :
247:2005/10/13(木) 14:44:06
レスありがとうございます。
>>251 すぐ用意いたします。
>>252 別々で行うのではないのですか?!
取り急ぎ。
1 + 1 = 2
└ファンクション┘ 戻り値
計算をしなければ計算結果は出ない
君はいきなり「計算結果はいくつですか」と聞かれて答えられるか?
普通は「何の計算だよ?」ってなるだろ
計算式を与えられて(Functionを呼んで)初めて計算結果(戻り値)というのは出せるものだ
256 :
247:2005/10/13(木) 14:54:33
>>253 まさにその通りでした。確認しました。
>>255 なるほど…。ほんとそうですよね。
#
>>251 解決させていただきましたので、恥ずかしい冗長なコードのUPは差し控えさせていただきます。
みなさまありがとうございました!
A1:A30のうちで一番下に記入されているデータをB1にコピーするワークシート関数は無いでしょうか?
OfficeXPをXPで使用しています。
>>257 既成のワークシート関数は無いが、数式組めば可能
使う関数はA1:A30が数値ならINDEX、MATCH、MAX
文字列ならINDEX、MAX、IF、ISBLANK、ROWかな
やり方はいくつかあるだろうけど、後は自分でやれ
因みに
>>229-233あたりを読んで置け
259 :
名無しさん@そうだ選挙にいこう:2005/10/13(木) 15:41:34
時間計算で使うのですが
セルに40と入力すると0:40と認識してくれる方法ありますか
一日の労働時間−休憩時間
↑
ここに40と入力したいわけですが・・・
EXCEL2003です
260 :
名無しさん@そうだ選挙にいこう:2005/10/13(木) 15:54:51
>>259 00:40:00 = 40÷24÷60 = 0.027777777
これで何とかなんない?
>>259 休息時間の入ったセルをTIME関数に放り込めばよいのではあるまいか。
A1に「40」と入ってるとすれば、
=一日の労働時間−TIME(0,A1,0)
直接TIME(0,40,0)とやっても同じ。
262 :
名無しさん@そうだ選挙にいこう:2005/10/13(木) 16:44:30
263 :
名無しさん@そうだ選挙にいこう:2005/10/13(木) 17:38:53
印刷するときに、2ページから5ページというようにできるのはわかるのですが、2,5,7ページというように印刷する方法はないのでしょうか。ワードだと出来るのですが・・・
265 :
WinXP/excel2003:2005/10/14(金) 00:55:50
いくつかのテキストファイルをエクセルファイルに変換したあと、
それらをひとつ(book)にまとめたいのですが、どうすれば宜しいでしょうか?
例えば、エクセルは新規作成する場合、シートが3つありますよね。
あのような感じにまとめたいのですが。
宜しくお願いします。
>>265 各ファイルをExcelで開いて「シートの移動またはコピー」でまとめるか
外部データの取り込みで、ひとつのブックに新規シートとしてデータを取り込む
これだけで解るとは思うが、解らなければあとは自分で調べな
267 :
265:2005/10/14(金) 01:38:48
ありがとうございます。やってみます。
しかしここの回答はほんとに気持ちがいいね。
簡潔、明瞭、的確。
俺自身は質問したことないけど、いろんなヒントもらって
役立ててる。
回答者諸氏、がんばってください。
269 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 02:38:42
散布図のグラフを同じy軸で2つ同時に表示させるのですが、
片方の要素だけ、x軸がある角度だけ傾いたように表示したいのですが、いい方法はありますか?
傾いたx軸は表示されなくていいのですが…。
よろしくお願いします。
271 :
269:2005/10/14(金) 03:02:15
すみませんでした!
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】軸を傾ける とかでやってみました
です。
すみません、お願いします。
272 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 03:22:57
ある列のデータを行に横並びにしたいのです。
例)
1
2
3
4
5
↓
1 2 3 4 5
…というふうに。
どなたかやりかたわかる方いらっしゃいませんか??
よろしくお願いします。
>>272 テンプレ(
>>1)読もうね。
列を選択してコピー→形式を選択して貼り付け→行列を入れ替える。
274 :
272:2005/10/14(金) 03:37:31
273
ホントにすみません!!
どうもありがとうございました。
非常に助かりました。
275 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 05:22:28
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ユーザー定義
書式設定のユーザー定義で "所有者"@"様"
としてそこのセルは=Sheet1!B2というように名前が入っている別の
シートから飛んでくるようになっているのですが
そうするとちゃんと飛んでこずに 所有者=Sheet1!B2様
となってしまいます。手入力で例えば山田と入れれば、しっかり
所有者山田様のようには表示されます。
ちゃんと飛んでくるようにはできるのでしょうか?どなたか
解る方いらっしゃったらすみませんが教えてください。
>>275 Sheet1!B2=山田
Sheet2!A1=Sheet1!B2 表示形式:"所有者"@"様"
で、Sheet2!A1に「所有者山田様」と表示されますが、何か?
おそらく結果からして、「表示形式:@」→「セル:=Sheet1!B2」→「表示形式:"所有者"@"様"」
というような操作をしたんじゃないの?
ユーザー定義の表示形式を使いたいなら「表示形式:標準」→「セル:=Sheet1!B2」→「表示形式:"所有者"@"様"」
という順で操作してみな
又は「表示形式:標準」→「セル:=TEXT(Sheet1!B2,"所有者@様")」or「セル:="所有者"&Sheet1!B2&"様"」
277 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 05:48:18
>>276 こんな早朝にありがとうございます。
会社に行ったら早速その手順で試してみます。
278 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 10:41:29
Excel2000を使ってますが、ワークシート切り替え用のタブがドキュメント下部に出ますが、
これをタブブラウザのようにドキュメント上部に持ってくることは可能ですか?
Windowsのタスクバーみたいにドラッグすれば持っていけるかな?と思ったけど無理でした。。。
あるいは2003にすれば可能とかでもいいので教えてください。よろしくお願いします。
↓こいつらを上に持っていきたい。
ヽSheet1 /ヽSheet2 /ヽSheet3 /
 ̄ ̄ ̄  ̄ ̄ ̄  ̄ ̄ ̄
>>279 ナイス突っ込みですね・・・
タブブラウザで上にタブがあることに慣れたので、Excelでもできないかなと思ったんです。
>>278 できるわけがない。
というより、なんでできると思うのかがわからん。
モニタを上下逆にすればいんじゃね?やべっ!これって特許申請すべき?
バイナリ-パッチを当てるか、ブラウザの方のタブを下にやることを考えよう
285 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 18:53:09
教えてください.
現在,折れ線グラフを作っているのですが,
ある年から標本対象となる母集団が一部が
変更されております.その区間の線を切断し
たいのですが,できるでしょうか?
EXCEL 2000を使っています.
286 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 19:18:08
その区間の線をじっくりとクリックして左クリックして、データ要素の書式設定
を選ぶと色々できる。
287 :
285:2005/10/14(金) 19:20:30
>>285 おおお,できました.
ありがとうございました..
↑
レス番間違えました.
>>286さん,ありがとうございました.
289 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 20:08:10
棒グラフでひとつだけ突出したデータがあった場合に
手書きでやる時にやるように
__
| |
〜〜〜
| |
みたいに波線で他のデータの範囲にあわせることって出来ませんか?
それかそのデータだけ棒を何本も表示して他のデータ範囲にあわせるとか
エクセル2002です。
>>289 その手の質問いままで何度も出たが、無理。
2個のグラフを並べていじって、姑息的に見た目だけそれっぽくするぐらいしかできない。
excel:2000 os:2000
起動時に
「xxx.xlsを変更し、保存する必要が無ければ、読み取り専用で開いて下さい。
読取専用で開きますか?」とメッセージの出るファイルがあります。このメッ
セージを解除するにはどうしたら良いですか?
プロパティで読み取り専用のチェックボックスにチェックが入っていないこと
は確認しています(付いていたらこういうメッセージが出てこないことも確認
しました)。
wordなら ツールーオプションー保存に「読取専用を推奨する」というチェック
ボックスがあってそこのチェックを外せばOKなんだけど、エクセルってどこ
にそういうのがあるんですかね。
コモンダイアログ > ツール > 全般オプション > 読取専用を推奨する
294 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 21:18:21
★Word/Excel (MS-OFFICE) 初心者スレッド Part24★で相談しましたが、
そのスレッドに「問題解決をお望みの方は以下のスレッドへ移動してください」
とありました。
転載ですが、どなたか教えて頂けないでしょうか。
excel2000を使用してます。
二つのセルに入力した日付の差を求める関数はないでしょうか?
DATEDIFFを使ってみたんですが、変数にセルをいれるとうまくいきません。
295 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 21:27:24
>>294 まさにそのdatedifなんだけど(fは一つ)、どんな式にしたうまくいかなかったの?
296 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 21:31:24
>>295 =DATEDIF(J2,J51,"D")のように、変数にセルを代入するとうまくいきませんでした。
移動じゃなくてマルチなんだから放置しようぜ
298 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 21:47:22
>>296 私はできたよ、それで。
j2に「2005/1/1」 j51に「2005/10/5」と入れて、
a1のセルに、=DATEDIF(D2,D51,"d")って入れたら277って出た。
j2やj51に日付が入っていないんじゃないの?
それか、日付だと思っていても実は適当な漢字とか入れて文字列になっているとか。
大体、どんなエラーが出たのか書いてくれないと。それからマルチはだめだよ。
299 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 21:53:35
>>298 すいません。むこうのスレのテンプレを読む前に書き込んでしまいました。
エラーの内容は#NUMと表示されてしまうことです。
ちゃんと日付を入れて試したんですけど・・
何か設定がおかしいのでしょうか
300 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 21:57:04
すいません、自己解決しました。
変数の順序が逆でした。
手数掛けました。
>>297 解決したぜ、ざまーみろタコ
普通「自己解決」って。放置されたり、回答が的外れの時にしか使わないんじゃ・・・。
302 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 22:44:29
>>300 >>298だけど、私もよくやるミスだった。今頃思い出したよ。
あのさ、気持ちはわかるけど、最後の一行はスマートではない。
子供なんだからスマートじゃないのは仕方なかろう。
304 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 23:08:19
エクセルマクロを使って深夜飯を作成することは可能ですか?24歳独身です。
305 :
ももた:2005/10/14(金) 23:14:06
【1 OSの種類 .】 Windows ME
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
よろしくお願いいたします。
A列の中に1000位の値があったとして、その1000の値はひとっとして
同じものがあってはならない場合に 同じ値があるものを検索・探しだしたいの
ですが、どのようにしたら良いのでしょうか?教えていただけないでしょうか
よろしくお願いいたします。
いったん並べ替えをして
真横のセルに
=a1 - b2
という式を入れて値が0になったら駄目。
とかはどうよ。
307 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 23:29:32
値が文字列なら並べ替え後に横のセルに,
=IF(A1=B1
"NG"
"OK"),,
並びを元に戻す必要ありなら先に通し番号ふっとく。
B列に
=IF(COUNTIF(A$1:A1,A1)>1,"←重複してるぞ","")
並び替え必要なし、数値も文字列もOK
309 :
ももた:2005/10/14(金) 23:37:31
ありがとうございます。教えていただいた方法を試してみます。
本当にありがとうございます。
310 :
名無しさん@そうだ選挙にいこう:2005/10/14(金) 23:40:28
「重複データ」の有無をチェックする
=IF(COUNTIF(A:A,A1)>=2,"重複?","")
ピエロ
312 :
名無しさん@そうだ選挙にいこう:2005/10/15(土) 00:35:52
色々な種類の罫線だらけの表の各値を
別のセルにコピーしたり、移動したりする作業が多いのですが
罫線ごとコピー、移動されてしまいます
「形式を選択して貼り付け」で「値」を毎回指定するのが面倒なので
最初から、すべて罫線無視でやる方法はないのでしょうか?
1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 殆ど使えません
【4 VBAでの回答の可否】 可
困っています、教えてください。
シートをアクティブにする際
Worksheets("本日の合計").Activate
等としますよね。で、シートの名前が代わるかも知れず
Worksheets(* & "合計" & *).Activate
と出来ればいいなと思うのですが,ワイルドカードを使って指定することはできないのでしょうか?
よろしくご教示お願いします。
>>313 「値の張り付け」ツールボタンをツールバーに出しておく
表示 > ツールバー > ユーザー設定 > コマンド > 編集 の上から10番目あたり
>>314 Worksheetsプロパティの引数にワイルドカードは使えないので
シート名から"合計"を含むものを探す形になるかな
Dim WS As Worksheet
For Each WS In Worksheets
If WS.Name Like "*履歴*" Then
WS.Activate
Exit For
End If
Next WS
あ、シート位置が固定なら、名前じゃなくてインデックス番号で指定した方がいいかな
対象が左から3番目なら
Worksheets(3).Activate
317 :
314:2005/10/15(土) 10:54:04
>>315 早速のレスありがとうございます。プロシージャまで書いていただいて助かります。
>Worksheetsプロパティの引数にワイルドカードは使えないので
素人からすると残念な仕様です。引数に(運用上変わる可能性のある)シート名を渡す場面があるので…。
>316
本当はそれがいいのでしょうが、作業する人が勝手にシートの並び順を変えたりしちゃいますので無理なんです。
>>315 即レスありがとう!
こんなのあったんだ
初歩的な質問で申し訳ないのですが
A B C
1 2 4 =SUM(A1*B1)
2 3 2 =SUM(A2*B2)
3 5 1 =SUM(A3*B3)
・
・
・
と計算しているのですが5行目くらいからAとBの値を入力するだけで
Cには勝手に計算された値が出てきます。
これを2行目くらいから勝手に出てくるようにしたいのですが出来ますでしょうか?
よろしくお願いします。
ズレてしまいました。
左の1,2,3は行数です。
A B C
1 2 4 =SUM(A1*B1)
2 3 2 =SUM(A2*B2)
3 5 1 =SUM(A3*B3)
・
・
・
今度は正しくできたかな・・・よろしくお願いします。
> 勝手に計算された値が出てきます。
意味わからん
C列に数式が入ってれば、1行目からでも自動で計算された値が返るだろうし
数式が入ってなければ何行目まで行ってもCに値など返らないが。
322 :
319:2005/10/15(土) 16:17:24
4行目くらいまではAとBをかけた数式をCに入力しているのですが、
5行目からはCに数式を入れずとも自動的にAとBをかけた値が出力されるのです。
もしかして数式補完のことか?
これが動作する為に必要な同一式の数は固定だぞ
あまり少ない数で補完されたら邪魔で使い物にならないからな
324 :
319:2005/10/15(土) 16:40:36
そうですか・・・固定でしたか。設定で変更できるものかと思ったもので・・・
>あまり少ない数で補完されたら邪魔で使い物にならないからな
確かにそうですね。ただ、変更できれば自分的には便利だったので・・・
どうもお騒がせしました。ありがとうございました。
=SUM(A1*B1) という数式が気になる。
たまに見かけるけど、何がしたくてこう書くのかが全く理解できない。
だれかこんな風に教えてるやつがいるのだろうか?
>>325 最初に誰かが間違ってShift押しながら":"押してしまったのが
そのまま普及したとか。
=SUM(A1+B1) ってのも見たな
328 :
名無しさん@そうだ選挙にいこう:2005/10/15(土) 20:24:48
サムってあのTRFのサム?
329 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 00:43:20
ヘボスペックPCに優しいテンプレートを考えています。
少し教えてください。
とある集計に使うブックのファイルサイズがそこそこ大きい場合、
計算式や数値を全てをセルに入力した状態で立ち上げるか
何も無い状態から起動時にマクロでズサーっと書き込んでから扱うか
どっちがヘボスペックPCには優しいですか?
たとえば本来使用したいブックの内容は
シートA,B,Cの3シート
シートA,B,Cの内容はどれも同じ
シートAはA1=1,A2=2,A3=3という風に単純に1〜1000までをA1000まで。
B1=A1*1,B2=A2*2,B3=A3*3という風にB1000まで
C1=A1*B1,C2=A2*B2,C3=A3*B3という風にC1000まで
といった感じ(↑の内容は特に問わないでください)のような単純な内容が多く必要な場合
上記内容を全てのセルに入力した状態で保存し、次からテンプレートとして起動するか
マクロのオートフィルやシートのコピーなんかを記入して、起動時にテンプレートを作り上げるか
どちらがお勧めでしょうか?
【1 OSの種類 .】 Windows98
【2 Excelのバージョン 】 Excel98
【3 VBAが使えるか .】 マクロの記録が少し扱える程度
【4 VBAでの回答の可否】 可
【5 PCスペック .】 手元に無いので詳細は判りかねるのですが、Crusoeを乗せたかなり古いモバイルサイズのノート
どうぞよろしくお願いします。
再計算の頻度、ブックを開く頻度、ブックを開いてる時間
その他、使い方によって何が良いかは変わってくるし
ヘボと言ってもCPUが弱いのかHDDの読み書きが遅いのか
メモリ容量が少ないのか、メモリアクセスの帯域が狭いのか
その全てがヘボいにしての、その中で特に弱いのはどの部分かなどで変わってくる
なので「最適な方法 = 実際に最高のパフォーマンスを発揮した方法」だな
331 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 01:25:48
>>329 計算方法の設定を手動にすればいいんじゃないの
332 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 01:30:46
>>330 なるほど。確かにそうですね。
まずはボトルネックの見極めからですか。
こればかりは実機にて状況を確認するしかないようですね。
>>331 それが結構リアルタイム集計で自動で無いと困るような内容なのです。
ありがとうございました。
週明け会社PC持って帰って色々試してみます。
333 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 03:28:58
【1 OSの種類 .】 問わず
【2 Excelのバージョン 】 問わず
【3 VBAが使えるか .】 VBAに関して
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 OpenText Shift -Shift-Jis VBA
VBAでバッチ系処理を行っているプログラムがあります
随時CSVを読み込む処理をOpenText関数で行っています
そのプログラムの実行中に同PCで作業をすると
プログラムがOpenTextでいきなり停止する現象が起き、
原因が不明でしたが、Shiftを押している時と判別できました
納得、Shift押してオープンするとデザインモードで起動するのがExcel。
Applicationオブジェクト全体のマクロが停止します
有効な回避策はないでしょうか?
Shiftを押しながら実行されてもマクロが止まらない設定にできれば最高です
1.今後はファイルI/Oで行いますが、現行アプリはそんな修正できない
2.バッチ処理中はPCでなにもしないでねというしかないのですが、あまりに情けない
再現用。Shiftを押しながらマクロ実行してメッセージを出す方法が見つかりません
Public Sub OpenCSV()
Workbooks.OpenText "C:\Temp\test.csv"
MsgBox "Readed"
End Sub
バッチ処理を外部に置けば?
VBSなりアドインなりにすればデザインモードでも動くでしょ
又はAPI使ってフックし、OpenTextメソッドの間だけShift無効化するとか
APIに付いて知りたければググりな。
>334
キーフック、やってみました。
参考
ttp://www.vt.sakura.ne.jp/~xration/htmls/prg_hotkey.htm フック前からの押しっぱなし起動分はさすがに無理でしたが、
フック後に別窓でShift押しっぱなしにしてもOKでした
・・と思ったらなんかフック処理なくてもOKになってる
Excelはウィンドウハンドル無いんでデスクトップハンドルを使ったのがまずったかもしれない
処理起動〜終了までPCのShiftを無効にすれば安定しそうです
それなら頭と最後に処理少し追加すれば良いだけなので
とりあえず月曜に色々と試験してみます、ありがとうございました
336 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 07:38:20
A列の選択箇所で、A1とA2を比較してA2が大きかったらA2に色づけする
という数式はどうするのでしょうか。条件付き書式の設定はわかります。
A2の条件付書式
式が =A2>A1 書式を指定
338 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 11:20:59
すいません、どなたか教えてください。。
エクセルなんですが、入力規則などで
打ち込む数値を「1000単位」とか「100単位」で制限する方法はありますか?
最小桁数を設定するだけだと、それ以上の数値であれば一桁台の数値も打てちゃいますよね?
あくまでも単位で制限したいんですけど。。。
お分かりの方がいらしたら初心者をお助けくださいませ。
339 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 11:52:43
excelでy=ax+bのような関数をグラフにするにはどうしたらよいのでしょうか?
当方excel2003使用です。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 勉強中
【4 VBAでの回答の可否】 可
範囲内に、一行目と異なる文字列が含まれてる場合に
メッセージボックスを出すようにしたいです。
以下のようにやってみたのですが、
対象の範囲が広くなり、何度も繰り返した時に、処理が重くならないか心配です。
もっとスマートなやり方があったらご教示ください。
For i = 1 To 5 Step 1
If Range("A1") <> Range("A" & i) Then
MsgBox "異なる文字列があります", vbOKOnly
End If
Next i
>>338 入力規則 を ユーザー設定 で =MOD(A1,1000)=0 とかに設定
【1 OSの種類 .】 WindowsXPhome
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 ADO Excute?
ADOでパラメータクエリを作成し、複数のアクセスMDBファイルから
クエリでデータを取得するプログラムを作っています。
このときいくつかのMDBには存在しないフィールドに対しても、クエリを実行するのですが、
当然エラーが出ます。
On Error Resume Next
Set rs = New ADODB.Recordset
Set rs = cmd.Execute
としても、次に飛んでくれないで、黄色い表示のデバッグになってしまうのですが・・・・エラーメッセージは以下です。
"実行時エラー'-2147217904 (80040e10)':
1つ以上の必要なパラメータの値が設定されていません。
クエリや他の部分はフィールドが存在するときは正しく動いています。フィールド名を事前に取得して
チェックさせれば良いのでしょうが、このエラーだけresumeが効かないのが理解できません。
>>336 条件付き書式を使わず、数式のみでってことなら無理
>>338 ユーザー設定では数式も使える
単に任意の数値でTRUEを返す式を入れればいいだけ
必要情報を書いてないので、こっちも実際の数式は書かない
あとはヘルプなり関数の検索なりで調べて自分で書け
>>339 グラフにすればいいじゃん
>>340 数が多ければ範囲を配列値として処理した方がいいだろうけど5カ所程度ならそのやり方でもいいだろ
あと比較対照(A1)は、毎回参照しないでA1の文字列を変数に入れた方が速い
とりあえず比較対照を変数にするだけで、処理時間は3〜4割減らせる
範囲.Valueに対してFor Eachループ回せば9割以上の処理時間を減らせるだろう(つまり処理時間は元の1/10以下)
それと異なる文字列が有った場合は、その位置を選択してループを抜けるなり
異なる文字列の件数を表示させたりするのがスマートじゃないか?
単にメッセージだけってのはスマートじゃないな
>>342 > ・ VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
それとVB6スレに行った方がいい内容だな(VB6使ってないとしても)
VB言語(VBA)でのデータベースアクセスなんて、Excel関係ないし
>>343 親切にありがとうございます。そちらで聞いてみます。
全部貼ると60-80行くらいで目障りそうだったので・・・
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
ファイルを複数台のPCで共有しているのですが。
ファイル名administratorv2やversion1と元々1つのファイルが何個かになっているのです。
このようなファイルを作れなくするようには出来ますか?
また、なんでこのようなファイルが作られるのでしょうか?
>>343 ご助言ありがとうございます。
いちいち参照するから重くなるのか(゚д゚)
一発でできる関数でもないかとフラチなことを考えていたのですが、
基本的なやり方はこれでいいんですね。
メッセージの表示については、これから手を加えます
>>345 エクセルじゃなくてシステムの問題だろ。
348 :
名無しさん@そうだ選挙にいこう:2005/10/16(日) 15:22:46
どうでもいいけど、
こういう知識持ってるやつって
どうしてこう、まともな口の聞き方が出来ないヤツが多いんだろうね。
機械としか付き合ってないとこうなるのか?
↓
>>343、
>>347
349 :
338:2005/10/16(日) 15:33:51
>>343 必要情報ですか。。
ある任意のセルに「1000単位」の数字しか
打ち込めないように設定したいんですけど。。。
「1000」とか「2000」ならOK、
でも「1008」とか「1150」だとエラーが出るような
そういう式が知りたかったんです。。
> ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
> ★質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
> ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
351 :
┐(゚〜゚)┌:2005/10/16(日) 15:48:41
(´-`).。oO( どうでもいいなら書かなければいいのに・・・・・ )
本当はどうでもいいどころか、どうしても書きたかったんだろ( ゚д゚)σ)´Д`)プニプニ
ここのルールに従ったまともな質問の仕方も出来ない奴に
まともな口聞く必要なんてあるのか?
ここはまともな質問者には滅茶苦茶親切だが
ヘタレ(Excelの知識がではなく人として)な質問者にはそれなりに厳しいスレだぜ。
それでも2chの中では甘い方だけど。
つーか
>>347はまだしも
>>343の何処がまともじゃないんだ?
もしかして偉そうな口振りだとか言いたいのか?
ここ2chでは質問スレの回答者じゃなくても偉そうな奴は多いし
回答者が偉そうなのはなんら問題ないだろ。
あまり348みたいのを構うなよ
こういうチンケな虫は定期的に湧くものだ
>>351 はいはいワロスワロス
>>352 >もしかして偉そうな口振りだとか言いたいのか?
そう、その通りw
知識があるってだけでずいぶん偉そうじゃんw
どこの誰がヘタレ(Excelの知識がではなく人として)って認識で厳しく答えてんの?
まあ、この手の「知識がありゃあ上」みたいなスレで
「知識もあって人格者」なんてのを期待するのがどだい無理な話だったなww
いかにもネット弁慶な奴らが集まりそうなスレだが、
あまりにもベタに多すぎて『笑えるぜ。』(←こういう
>>352みたいな「だぜ」口調も珍しいしなw
>>353 お前みたいなコバンザメ、いやきせいするだけのダニ野郎も
定期的に・・・っつうか常駐してっかwwwwww
可哀相・・・・・
こういうときの為に日本語には「喧嘩両成敗」といういい言葉がある。
喧嘩っつーか、誰かさんがwwwwwwとか言って踊ってるだけじゃんwwwwww
358 :
名無しさん@そうだ選挙にいこう:2005/10/17(月) 11:21:54
馬鹿が馬鹿に回答してるんだから、間違った答えも
DQNな口調も我慢しろよ。馬鹿なんだからしょうがないだろ。
359 :
名無しさん@そうだ選挙にいこう:2005/10/17(月) 15:43:21
質問する側としては、厳しく言ってくれるスレの方が質問する前に内容をしつこく
これでもか、というぐらい吟味するので勉強になる。
親切なスレは甘えてしまって自分のためになりません。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 勉強し始め
【4 VBAでの回答の可否】 可
下の長いコードって、For intCnt = 1 To 100みたいのを使って、短くかっこよくかけるでしょうか。3つまではうまく動いているのですが、今後数が増えたらやだなあと思い質問させていただきました。
Sub Test()
Dim x1As String
Dim x2As String
Dim x3As String
Dim intCnt As Integer
intCnt = 1
x1= Workbooks("001.xls").Worksheets("Sheet1").Cells(5 + intCnt, 1)
intCnt = intCnt + 1
x2= Workbooks("001.xls").Worksheets("Sheet1").Cells(5 + intCnt, 1)
intCnt = intCnt + 1
x3= Workbooks("001.xls").Worksheets("Sheet1").Cells(5 + intCnt, 1)
End Sub
よろしくお願いします。
>>360 個別の変数x1, x2, x3を使う限りはひとつひとつ書くしかないと思うけど
二次元配列使えばForも使わず一発で出来ますよ
例えばA6="aaa"、A7="bbb"、A8="ccc"の場合
Dim x As Variant
x = Workbooks("001.xls").Worksheets("Sheet1").Range(Cells(上端行番号, 1), Cells(下端行番号, 1)).Value
で、x(1,1)に"aaa"、x(2,1)に"bbb"、x(3,1)に"ccc"が入ります。
A6:A8の場合、上端行番号は6、下端行番号は8です。これは定数にしておいた方がいいかも。
For使うなら
Dim x(1 To 3) As String
Dim intCnt As Integer
For intCnt = 1 To 3
x(intCnt) = Workbooks("001.xls").Worksheets("Sheet1").Cells(5 + intCnt, 1).Value
Next intCnt
で、x(1)に"aaa"、x(2)に"bbb"、x(3)に"ccc"が入ります。
この「変数名(インデックス)」を配列、又は配列変数と言いますが、これを使えば上記のように簡単に出来ます。
配列使わなければおそらくループなどを使って記述するのは無理だと思います。
362 :
名無しさん@そうだ選挙にいこう:2005/10/17(月) 16:42:38
Dim x(10) As String
Dim intCnt As Integer
For intCnt = 1 To 10
x(i) = Workbooks("001.xls").Worksheets("Sheet1").Cells(5 + intCnt, 1)
Next i
配列使ったらだめなん?
363 :
360:2005/10/17(月) 17:10:47
>>361-362 お返事ありがとうございます。
詳しい説明とコードのご提示助かります。配列ですか。思いつきませんでした。。。
For文を使わない方法というのは、一気に転記するような感じなのでしょうか?
いずれにしても、これで数が増えようと平気になりそうです。
使いこなすにはまだまだ精進しないといけませんが、ありがとうございました。
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
オートシェイプの吹き出しの中でIF関数を使いたいのですが、うまくいきません。
「入力した文字列は参照名または定義名として正しくありません」と警告されてしまうのですが、
どうすればいいでしょうか?よろしくお願いします。
そもそもオートシェイプ内って関数使えたっけ?
366 :
364:2005/10/17(月) 22:21:41
>>365 関数使えないのですか・・・
ある条件でオートシェイプ内のテキストの内容を変える、
ということをしたかったのですが、ほかの方法を試してみます。
ありがとうございました。
>>366 オートシェイプ内では関数使えないから
別のセルで計算させておいてオートシェイプに反映させるようにしたら?
セルA1の値(計算結果)をオートシェイプに反映させるのは
オートシェイプをアクティブにして 数式バーに直接 「=A1」といれる。
^^^^^^^^^^^^^^^^^
数式バーに直接 に下線いれたかったのにずれた。
> ・ 図を書く場合、TABや連続する半角スペースは無視されるので注意
370 :
名無しさん@そうだ選挙にいこう:2005/10/18(火) 13:15:56
関数の質問です
セルに指定した文字があるかどうか求めたいんですけど
そんな関数ありますか?
例えば
東京都渋谷区
大阪市中央区
東京都品川区
京都府京都市
などで「東京」を含んでるセルのTRUEかFALSEを求めたいんですけど
FIND("東京",セル)>0
・・・・ ('A`)
SEARCH
375 :
370:2005/10/18(火) 15:55:34
ありがとです、なるほどSEARCHですか
IF に SEARCH を入れると上手くいかないんですけど
例えば
IF(SEARCH("大阪",A1)>0,SUM(B1:B10),SUM(C1:C10))
SEARCH関数入れるとIFのFALSEが返らないのですけど
それはSEARCH関数で完結してしまうからですか?
それか式が間違えてるのだろうか
>>375 VBAのInStr関数では検索文字が無かった場合に0を返しますが、
SEARCH関数やFIND関数は、検索文字が無かった場合に0ではなくエラーを返します。
なので結果は0か0より大きいかで判断するのではなく、エラーか否かで判断するのが良いと思います。
=IF(ISERROR(SEARCH("大阪",A1)),SUM(C$1:C$10),SUM(B$1:B$10))
「ISERROR(SEARCH("大阪",A1))」の式はエラーの場合(大阪が含まれない場合)にTRUEを返します。
大阪が含まれてる場合にTRUEを返したければ「NOT(ISERROR(SEARCH("大阪",A1)))」のようにしてください。
>>375 A B C
東京都渋谷区 1 2
大阪市中央区 2 4
東京都品川区 3 6
京都府京都市 4 8
ここでD1に入れる式。
=IF(ISERROR(SEARCH("東京",A1)>0),(SUM(B2:B5)),(SUM(C2:C5)))
こんな感じで、ヒントになります?
378 :
名無しさん@そうだ選挙にいこう:2005/10/18(火) 16:35:21
>>70 IF(ISERROR(SEARCH("大阪",A1))=TRUE,SUM(C1:C10),SUM(B1:B10))
これでどう?
379 :
378:2005/10/18(火) 16:37:38
380 :
377:2005/10/18(火) 16:40:27
>>376 リロードせずに書き込んだんで、ちょっと恥ずかしい。
完璧な説明と数式ですね。
いや、今日はいつもの回答者諸氏が不在かなと思って、
稚拙ながら回答者の真似事をしてしまいました。
スレ汚し失礼しました。
381 :
370:2005/10/18(火) 17:15:53
オオォッ! ありがとうございます
そのISERROR使ったら出来ました
そして勉強になったです
どうしたの?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 あるていど
【4 VBAでの回答の可否】 可
ABCDEFGHの8つのアルファベットをランダムに使った文字列があり、
その文字列の3つ目のAをBに置換するというような処理を関数化したいのですが
どのようにしたら良いでしょうか?
具体例を書くと、文字列が
BDAHGEHAGDCEBAHDGECBA
で、3つ目のAをBに置換する場合は
BDAHGEHAGDCEBBHDGECBA (先頭から14文字目をAからBに置換してあります)
のように置換したいのですが。
文字列の文字数は決まってませんが、置換するのは1文字のみです。
そして同一文字に置換する場合もあり、置換が成功したかどうかで後の処理を分けたいです。
sub test()
dim 文字列 as string
文字列="BDAHGEHAGDCEBAHDGECBA"
【3つ目のAをBに置換】
if 【置換成功か失敗かを判断】 then
【置換成功時の処理】
else
【置換失敗時の処理】
end if
end sub
これの【3つ目のAをBに置換】と【置換成功か失敗かを判断】の部分を書いてもらえないでしょうか
関数 置換 関数 成功か失敗か判断 作成
判断(置換(文字列))
れpぁせ、いずえらー
どうしたの?
なんかラリってるのが居るな
>>384 前スレの
>>157は読んで判る?
やるなら【置換可能かどうかの判断】(マッチするかどうか)の式になるんだけど。
389 :
388:2005/10/18(火) 23:48:41
>>384 Sub test()
Dim 文字列 As String
文字列 = "BDAHGEHAGDCEBAHDGECBA"
If SAMPLE(文字列, 3, "A", "B") Then
MsgBox "置換しました" & vbCrLf & "置換結果:" & 文字列
Else
MsgBox "置換できません"
End If
End Sub
Function SAMPLE(ByRef strTemp As String, ByVal lngNum As Long, strSea As String, strRep As String) As Boolean
Dim i As Long
For i = 1 To Len(strTemp)
If Mid$(strTemp, i, 1) = strSea Then
lngNum = lngNum - 1
If lngNum = 0 Then
Mid(strTemp, i, 1) = strRep
SAMPLE = True
Exit Function
End If
End If
Next i
SAMPLE = False
End Function
変数を参照で渡して書き換えているので、文字列を変数に格納してることが前提です。
>>384を見る限りはこの点は問題無さそうですが。
引数のByRefや、最後の「SAMPLE = False」は省略しても問題有りませんが
一応コードの明示性を上げるために入れてあります。使い方は見れば解りますよね。
Function ReplaceAtoB(src, dst)
ReplaceAtoB = False
dst = Replace(src, "A", "Z", 1, 3) '一旦Zにする
dst = Replace(dst, "Z", "A", 1, 2) '2つをAに戻す
If InStr(1, dst, "Z") <= 0 Then Exit Function ' Zが残っていない
dst = Replace(dst, "Z", "B", 1, 1) '残ったZをBにする
ReplaceAtoB = True
End Function
Sub m()
s1 = "BDAHGEHAGDCEBAHDGECBA"
If ReplaceAtoB(s1, s2) Then
'成功
MsgBox s1 & vbCr & s2
Else
'失敗
MsgBox "失敗"
End If
End Sub
392 :
名無しさん@そうだ選挙にいこう:2005/10/19(水) 01:12:18
ひさしぶりにhogeさん見た希ガス
393 :
WinXP/excel2003:2005/10/19(水) 03:07:44
コピーして貼り付けるとき、コピー元の範囲が、破線きらきらしてますが、
貼り付けた跡も、コピー元の破線がきらきらしたままです。
どうしたら、貼り付けと同時にコピー元の破線キラキラを消して、元の状態に戻せるでしょうか。
お願いします。
>>393 ステータスバーに書かれていることを読んでみろ
>>393 同時には無理だが、「Esc」キーを1回押せば済むこと。
396 :
名無しさん@そうだ選挙にいこう:2005/10/19(水) 11:13:17
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A列に1〜100までの値がランダムにたくさん(100行以上・不定)はいっています。
このうち、値が30以下のものがいくつ含まれているかを算出するにはどうすればいいですか?
>>396 =COUNTIF(A:A,"<=30")
質問です。
文字の後に\記号をつけて表示したいのですが、「,」が表示されません。
式は ="10月請求 \"&SUM(C3:C9)
結果が 10月請求 \62458
と表示されます。
10月請求 \62,458
と表示したいです。何か根本的に間違ってるのでしょうか?
>>398 間違ってるよ。
なぜ、\さえつければコンマが挿入される、と思うの?
="10月請求 "&TEXT(SUM(C3:C9),"\#,##0")
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
お願いします。
200ピクセル幅の列×5行の罫線で囲ったスペースに、文章を入力
しました。
1行では入りきらなかったので、編集→フィル→文字の割付で下の
行に割付しました。
ところが、右端の文字が半分だけはみ出てしまい、印刷すると右の
罫線が消えてしまいます。
これは、こういう仕様なのでしょうか?
対策としては、現在割付を行った後にフォントを1サイズ小さく
していますが、できればこの手間は省きたいので、何かの設定で
きちんと罫線内に収まる方法があれば教えてください。
よろしくお願い申し上げます。
401 :
398:2005/10/19(水) 13:01:30
>>399 最初、セルの書式設定で通貨の\つくようにしても文字が混ざっているせいか
付かなかったので、とりあえず\だけ付けてみました。それでコンマはどうしたら付くのかなと。
TEXTを使えば良かったのですね。
ありがとうございました。
>>402 395は”貼り付けを選択したら同時には”って意味だ。
しかし誤読されても仕方ないな。すまんw
405 :
400:2005/10/19(水) 14:46:25
>402
漏れも見てきましたw
たまに居ますね、電卓片手にワープロで表作ってる人!
文字の割付で欠けるのは仕様のようですね。
読んでてふと思い付き、セルの書式設定を「縮小して
全体を表示する」にしておくと、文字の割付をしても
欠けないということに気が付きました。
ヒントありがとうございました。
406 :
384:2005/10/19(水) 17:08:13
>>390 完璧です。
ありがとうございました。
>>391 3 A Bというのも固定じゃないと言うのを言い忘れてましたが、
自分が言い忘れてたその点を補完したら完璧に動きました。
hogeさんのコードの方がかなり高速だったので、
今回はhogeさんの方を使わせて頂きますが、
391さんのReplaceを使うアプローチも参考になったので
今後役立たせて頂きます。
>>393 貼り付けるときに 貼り付け とか CTRL + V を使わずに
ENTER で確定すると同時に消える。
409 :
名無しさん@そうだ選挙にいこう:2005/10/19(水) 21:10:48
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
A1からA200までに不規則な数値があり
その中で一番下にある値から、A1:A200の最大値を引いたものを出したいのですが
作業セルや配列数式を使わずに出せる方法を教えてください
例えば
10
30
20
なら一番下の20から最大値の30を引いて-10
20
10
30
なら一番下の30から最大値の30を引いて0を出したいです
範囲内にある数値は正数で空欄の場合もあります
=A200-Max(A1:A200)
411 :
409:2005/10/19(水) 21:56:06
>>410 いや、一番下のセルの値じゃなくて
>>409でも書いた通り"一番下にある値"です
A
1 10
2
3 30
4
5 50
6
7 20
8
9
だったらA7の20から50を引いて-30
更にA9に40と入力したら40-50で-10を出したいのです
>作業セルや配列数式を使わずに出せる方法を教えてください
学校の宿題ですか〜? w
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセルのヘルプでLOOKUP関係やCOUNT関係など
「人物ごとに最大値を抽出する」というシートを作ろうと思ったのですが
どうもうまくいきません。
人物はあらかじめ決まっていて、Cの列に入力されています。
そこにAとBの列に人物と点数を貼り付けたら、
(人物の順番や、何回その人物がでてくるかは毎回違う)
Dの列にはその人物ごとの最大値を呼んできたいのですが
(この場合、Dの列に上から10、100、30、と表示したい)
A B C D
田中 10 田中
佐藤 20 佐藤
高橋 30 高橋
佐藤 50
佐藤 100
どのように入力すればいいでしょうか?
「MAX」と「VLOOKUP」を同時に扱うような感じで考えてみましたが
うまくいきませんでした・・・
414 :
409:2005/10/19(水) 22:21:00
> 学校の宿題ですか〜? w
いいえちがいますよ
今後この式は複数ブック及び複数ユーザーで使うことになり
更に範囲を書き換える必要性が出てくる可能性が高いが
末尾セルに何か書いてあるわけではないので可変範囲式にするわけにもいかないので
書き換える箇所が1カ所で済むように作業セルを使わない方法を
配列数式を扱ったことがない人、扱い慣れてない人が書き換えて
配列数式にするのを忘れたりして不都合が起きないように通常数式を求めてます
>>412 で、君は煽るだけで回答は出来ないの?
それとも回答するだけの知識があるから煽ってるの?
さてどっちなのかな。
その答えを結果で示してみましょうか( ̄ー ̄)ニヤリ
>>411 =IF(A200<>"",A200-Max(A1:A200),IF(A199<>"",A199-Max(A1:A200)),・・・
って200回書けば?
>>409 =INDEX(A1:A200,MATCH(MAX(A1:A200)+1,A1:A200,1),1)-MAX(A1:A200)
>>413 D1=MAX(IF(A$1:A$5=C1,B$1:B$5,0))
をCtrl + Shift + Enterで確定して下方にフィルコピー。
範囲は必要ならそちらで書き換えてください。
配列数式を使わずに、個人別に1列の作業セルを使う方法もあるので
そちらが良ければ紹介しますよ。
418 :
名無しさん@そうだ選挙にいこう:2005/10/19(水) 22:45:17
419 :
409:2005/10/19(水) 22:56:00
>>416 IF関数のネストは7つまでが限界ではないですか?
例え200のネストが出来ても1セルの文字数制限に引っかかりますね
ネタで書いてるのかもしれないけど
>>417 出来ました
ありがとうございました
420 :
413:2005/10/19(水) 22:56:43
>>417 ありがとうございます!できました!
しかしこんな短時間で2問も・・・しかも簡潔な1文で。
スゴすぎ
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル初心者入門を読んでみました
重複してるデータを取り除いて詰めて並べたいのですが、可能でしょうか?
A列に下のようなものを貼り付けたら、B列にはダーっと
重複を除いたものを詰めて出したいのです。(実際には数千行)
A B
東京 東京
大阪 大阪
東京 静岡
静岡
大阪
最初、C5のセルに
=IF(COUNTIF(A$1:A5,A5)>1,"",A5)と書いて
上に向かってドラッグして、「重複を消すだけの列」をC列に作った後
B列に、空白になった部分を詰めていく式を作ろうとしたんですが
詰めるやり方がわからず、止まってしまいました。
こんなややこしい方法を使わなくても、
一発でB列に重複を除いた字をダーっと詰めて並べられる式は作れるものでしょうか?
422 :
名無しさん@そうだ選挙にいこう:2005/10/20(木) 00:52:56
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 複数ページ 印刷
1. 3ヶ月(8〜10月)をA4版1ページで印刷してるシート構成なんですが、中抜き(9月を飛ばし)して1ページでの印刷は可能ですか?
よろしくお願いしますです。
423 :
名無しさん@そうだ選挙にいこう:2005/10/20(木) 01:16:23
>>422 【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 印刷 セルの横幅
余白の設定、セルの横幅の全く同じシートなのに、
印刷可能領域が違うのはなぜでしょうか?
余白は両シートとも、左右とも0
シートで使っているセルの横幅は両シートとも同じ。
よろしくお願いします。
424 :
誰か助けて:2005/10/20(木) 01:45:59
初心者ですみません。
3√8=2 ですが、エクセルで3√8の計算をさせるのは、どうすれば
良いでしょうか。。。。
425 :
名無しさん@そうだ選挙にいこう:2005/10/20(木) 01:55:31 BE:33566562-
初心者スレが見つからないのでこちらで質問させてもらいます。
エクセルにコピペする時にLINKやいらない情報まで貼り付けてしまいます。
単純に書式などをデフォで文章のみをコピペする場合はコピーした後に何かを押せば
文章以外の情報をクリアできたと思うんですがど忘れしてしまいました。
よろしければ教えて下さい。。。
>>421 一発でB列に結果を出す式自体は作れますが、余計ややこしいだけだし処理も重くなりますよ。
とりあえず式自体はこんな感じで。
B1=INDEX(A$1:A$100,SMALL(IF(COUNTIF(OFFSET(A$1,0,0,ROW(A$1:A$100),1),A$1:A$100)=1,ROW(A$1:A$100),""),ROW()),1)
配列数式なのでCtrl + Shift + Enterで確定して下方にフィルコピー。
但し、範囲をA1:A3000とかに書き換えて1000行目あたりまでコピーしたりなんかすると
恐ろしい事になるので注意。はっきり言って数千行じゃ実用は無理です。(もっと軽く出来るかも知れませんが
C列も使う方法だとこんな感じで。
B1=INDEX(A$1:A$100,SMALL(C$1:C$100,ROW()),1)
C1=IF(COUNTIF(A$1:A1,A1)=1,ROW(),"")
この方法でも数千行となるとそれなりに重いでしょうけど。
どちらも返す値が無くなるとエラーを返すので、エラーを表示させたくなければ
>>6を参考に論理式を組んでください。
一応こういう処理はVBA推奨と言っておきます。
>>422 9月の行(又は列)を非表示にして印刷。
>>423 印刷倍率が違ってませんか?
ファイル > ページ設定 > ページ > 拡大縮小印刷
を確認してみてください。
>>424 =8^(1/3)
>>425 張り付けた後に張り付け範囲の右下に表示されるオプションボタンの「貼り付け先の書式と一致させる」
427 :
名無しさん@そうだ選挙にいこう:2005/10/20(木) 02:09:27 BE:134265986-
>>426 ありがとうございます。
それとコピーして張り付ける前にF?キーか何かでできたと思うんですが
そんな機能はないですか?
記憶違いかなぁ・・・。
428 :
誰か助けて:2005/10/20(木) 02:11:55
426番さん ありがとうーーーーー。感謝!!!
429 :
422:2005/10/20(木) 02:37:22
>>426 できたぁ。
エロガッパさん、ありがと!
430 :
421:2005/10/20(木) 07:47:44
>>426 ありがとうございます〜
マクロも勉強してみますです
ハイパーリンクを使って、下位にあるフォルダへのリンクを作っています。
階層構造を変更しようと思い、そのエクセルファイルをもう1階層上に
移動させたところ、リンクは変更されずそのままなので、
リンクが開かなくなってしまいました。こういった変更への対策は
ないでしょうか?
>>431 > ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
を守って、現在具体的にどういうリンクを組んでいて
エクセルファイルをどのパスから1階層上に移動させたのかを書いてみよう
【1 OSの種類 .】 WindowsMe
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
元々はMacG4(Excel2001)で作成されたデータなのですが、
それを開くとシート全体が灰色になっていてクリック出来ず、
入力したはずの内容と列番号が消えてしまいました。
ちなみにそのMacで開いても同じ状態です。
シートの保護等はかかってないし、新しく挿入したシートは正常です。
どうすれば直るでしょうか?
434 :
431:2005/10/20(木) 11:12:15
>432
アドバイスありがとうございます。以下の通りです。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 簡単な事なら出来ます
【4 VBAでの回答の可否】 それしかなければ努力します
【5 検索キーワード 】EXCEL ハイパーリンク 変更
全て相対指定でリンクしています。
実際はリンク先フォルダが大量にある状態です。
435 :
431:2005/10/20(木) 11:17:59
■ フォルダ
└−■
├□ EXCELファイル
├■ リンク先フォルダ1
└■ リンク先フォルダ2
EXCELファイルからリンク先フォルダ1,2へ
■ フォルダ
├−□ EXCELファイル
└−■
├■ リンク先フォルダ1
└■ リンク先フォルダ2
EXCELファイルからリンク先フォルダ1,2へ
つまり行き先は一緒
436 :
名無しさん@そうだ選挙にいこう:2005/10/20(木) 12:17:37
すいません。僕は409さんではないんですが
興味があったので便乗質問させてください。
>>417 に書かれている
=INDEX(A1:A200,MATCH(MAX(A1:A200)+1,A1:A200,1),1)-MAX(A1:A200)
という式の中の
MATCH(MAX(A1:A200)+1,A1:A200,1)という部分は
「(存在し得ないハズの)『最大値+1』をA1〜A200の中で上から順に探してこい」
という式ですよね。
この式でどうして「一番下にある数字の入っているセル」が選ばれるのでしょう?
「一番下にある数字の入っているセルを探す式」を作ろうと思った時に
「最大値+1を探させる式にすればいい」という発想が
理解不能です・・・
どなたか理解できるように解説お願いします
MATCHが指定範囲を順番に見て指定値を超えたところで止まってその前の値を返すから
1,3,5 で 4 を指定すると1から順番に見ていって5まで行った時点で戻って3の位置を返す
6を指定すると最後まで行くので5の位置を返す
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 使い始め
【4 VBAでの回答の可否】 可
すみません、教えてください。たくさんブックが開いているとき保存せずにエクセルを終了したいのですがどうすればいいでしょうか。
今は下のプロシージャでやってますが、PERSONAL.xlsが残ってエクセルは終了されません。
よろしくご教示下さい、お願いいたします。
Sub 保存せずエクセル終了()
If MsgBox("保存せずにブックを閉じます。" _
& vbCrLf & "エクセルは終了します。" _
& vbCrLf & "実行してもよろしいでしょうか。", vbOKCancel) = vbCancel Then
MsgBox "処理はキャンセルされました"
Else
Application.DisplayAlerts = False
Workbooks.Close
Application.DisplayAlerts = True
MsgBox "全ブックの変更を破棄しました。" _
& vbCrLf & "エクセルを終了します。"
Application.Quit
End If
End Sub
439 :
438:2005/10/20(木) 13:46:07
>>438 自己レスです。解決しました。
Application.QuitをELSEの直後に持ってきたら意図どおりに動きました。
Application.Quitって終了を予約しているんですね。
で終われる状態になったらアプリを落とす、ということなんでしょうか。
スレ汚しすみませんでした。
441 :
431:2005/10/20(木) 15:18:38
EXCELファイルを1階層上に上げても、リンク先を
そのままにしたいのですが、普通にコピペすると
パスが変わらないので、フォルダA,Bにアクセスできません。
自動的にパスを /フォルダA に変えたいということです。
これで分かります?
-----------------------------------------
■ フォルダ
├■
|└□ EXCELファイル
├■ フォルダA
└■ フォルダB
【パス】
../フォルダA
../フォルダB
-----------------------------------------
■ フォルダ
├□ EXCELファイル
├■
├■ フォルダA
└■ フォルダB
【パス】
/フォルダA
/フォルダB
442 :
431:2005/10/20(木) 15:19:10
構造を勘違いしていたので、直しています。
フォルダという名前のフォルダと
EXCELファイル.xlsという名前のEXCELファイルがあるのか?
444 :
431:2005/10/20(木) 15:51:21
そこは話に影響ないと思ったので、適当です。はい。
影響あるかどうかは周りが判断する
とりあえず出せる情報は全て出せ
では、こうなっています。
-----------------------------------------
■マイドキュメント
├■プログラム
|└□プログラム一覧.xls
├■旋盤
└■MC
【パス】
../旋盤
../MC
-----------------------------------------
■マイドキュメント
├□プログラム一覧.xls
├■プログラム
├■旋盤
└■MC
【パス】
/旋盤
/MC
447 :
431:2005/10/20(木) 16:10:01
下はこうしたい構造とパスですね。
>>431 結局リンク先の絶対位置を変えたくないため、相対パスを書き換えたいってことか
相対パスは自身(.xls)からの相対位置を自動で追うものなので
絶対パスが変わらず、相対パスが変わるものは絶対パスで書くのが基本だろ
相対パスで書いたものが相対パスを追わず絶対パスを追ったら、相対パスの意味無いじゃん
どうしても相対パスにしたいなら、リンク先から見て相対位置の変わらないもの
(例えば■マイドキュメントとか)からの相対パスをVBAで組めよ
少なくともお前がやりたいことは『自身からの相対パス』では無いということだけは断言しておく
相対パスでも絶対パスでも無いなら、あとは自分で作るしかないな
【1 OSの種類 .】 WindowsXP SP2
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA 視覚スタイル
VBAで自作したフォームにLunaの視覚スタイルを適用する方法を教えてください。
ボタンの角を丸くしたり、ボタンの背景にグラデーションがかかるように
したいのですが。
451 :
名無しさん@そうだ選挙にいこう:2005/10/20(木) 17:31:55
エクセル2000、XPですが、フィルタ表示で
任意の一文字を含むセルを抽出したところ
その文字が含まれるにもかかわらずなぜか
抽出されないセルがあるのですが、何が原
因か分かる方おられますか?
ちなみにそのセルは、1つのセルに百文字
程度入力してあります。
452 :
451:2005/10/20(木) 17:35:08
あと今気づいたのですが、検索したい文字列は
スペースが連続して入力してある後に入力して
ありますが、それが原因なのでしょうか・・・
453 :
名無しさん@そうだ選挙にいこう:2005/10/20(木) 17:40:32
>>451 その百文字をここに貼って、
「「○」という文字でフィルタをかけるとこのセルが抽出されません」
って書いてくれないと、色んな原因がありえすぎて考えにくい
その百文字を見られるのがマズいなら、マズい部分の文字を適当に変えてくだされ
よろしく
454 :
451:2005/10/20(木) 17:55:01
えっと、そのセルには
東京都・港区、大東区、・・・(同様に続く) ←全て改行なしで下行に続く
□□・・・(←スペースが15個くらいあった後に)
・・・□□☆条件はうんぬん・・・(と続く)
というようなものが1つのセル内に入力してあって、
☆を含むものを抽出するのですが、他のセルは抽出
されるのにこのセルだけ抽出されない。
ちなみに他のセルはこれ程は多くの文字が入力は
されていません。
入力内容は似たようなものですが、せいぜい20文字程度です。
455 :
001:2005/10/20(木) 18:54:30
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】可
【5 検索キーワード 】
表Aにデータ入力。
その数値で表Bに見積作成。
表AでA1、A2、A3と順にデータ使うときはよいのですが、
A1、A3、A5ととびとびでデータ拾うときに表Bを
上詰めにできず1行おきの見積もりになってしまいます。
使わないデータを無視して上詰めにしたいのですが。。。
よろしくおねがいします。
>>455 まずは自分の書いた数式なりコードなりをここに書いてみよう
複数の開いたウインドウの自動上書き保存したいのですが、
どうやるのでしょうか?
> ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
Public Function こういうことを言ってるのか?() As String
dim RowA as long
dim RowB as long
For RowA=0 to 最後
If 処理する? Then
処理した
SheetA.Cells(RowA,...) = SheetB.Cells(RowB,...)
RowB=RowB+1
Endif
Next
こういうことを言ってるのか? = ">455"
End Function
今回答待ちの質問って無いよな?
情報不足で回答保留ばっかりだ
きちんと質問しないとまともな回答付かないぞ
461 :
名無しさん@そうだ選挙にいこう:2005/10/21(金) 01:00:52
パワポのスレないのでここで聞きます。
エクセルで作成した一覧表(文字、画像)を
パワポに貼り付けたいのですが、
調整したら文字が潰れたり。。。
綺麗な貼り方ってありますか?
ちなみに表をShift押しながらの編集より「図のコピー」を選んで、
ピクチャ形式で貼り付けてます。
ビットマップでやるとピクチャよりも汚くなるので。
463 :
名無しさん@そうだ選挙にいこう:2005/10/21(金) 08:48:28
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】
質問です。
EXCELで既知のX,Yの配列に対して、
3次の多項式近似した場合の各係数(a〜d)を
EXCEL関数を用いて求めることは出来ますか?
ツール−アドイン−分析ツール−回帰分析
で可能ですが、マクロではなく関数で求めたいと思っております。
最小自乗法を用いて出来る様なのですが、excelに展開が出来ません。
わかる方、もしくはこの計算方法が出ているHP等わかる方は
ご助言願います。
464 :
451:2005/10/21(金) 09:02:16
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 使えないし、使ってません
【4 VBAでの回答の可否】不可
【5 検索キーワード 】
一応はっときます。
なぜこのセルだけ抽出されないのか不思議です。
書式設定も何もかも他のセルと一緒なのに・・・。
465 :
名無しさん@そうだ選挙にいこう:2005/10/21(金) 10:22:38
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 使えない
【4 VBAでの回答の可否】可
【5 検索キーワード 】マクロ、VBA、文字列追加、空白セル以外
マクロを使って、A1〜Z1セルの範囲の中でデータが入力されている
セルにだけ"▲"をそのセルの文字列の先頭に追加したいのですが、
下の記述では上手くいきません。どこが悪いのでしょうか。
For Each hoge In resultsh.Range("A1:Z1")
Range("A1:Z1").SpecialCells(xlCellTypeVisible).Select
hoge.Value = "▲" & hoge.Value
Next
466 :
名無しさん@そうだ選挙にいこう:2005/10/21(金) 10:27:18
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 使ってません
【4 VBAでの回答の可否】不可
【5 検索キーワード 】
当方OSがXP、officeは2003のExcelに関する質問なのですが
セルの書式設定タブから選んで"ユーザー定義"の中にある
yyyy"年"m"月"d日というのがありますが、その下にある
[$-411]yyyy"年"m"月"d日というのも存在しています。
この[$-411]というのは消しても問題ないそうなのですが
[$-411]自体にはどのような意味があるのでしょうか?
どなたか、知っている方がいられましたらご教授よろしくお願いいたします。
>>464 ちょっと実験してみたけど256文字(バイト?)以上の部分は見てくれないみたいだ
文字列を分割とかしないとだめかも
468 :
464:2005/10/21(金) 11:15:15
>>467 わかりました。助かります。
本当に感謝です。
469 :
465:2005/10/21(金) 11:18:32
ちょっと変えて、条件分岐で空白の時とそれ以外で
例えばA1のみの場合、
For Each hoge In resultsh.Range("A1")
If A1 = """" Then
hoge.Value = "" & hoge.Value
Else
hoge.Value = "▲" & hoge.Value
Next
ともしてみたけどダメみたいです・・・困った。。
>>465=469
おまいさん、For Each構文もIf構文もオブジェクトについても何もわかってないだろ。
>【3 VBAが使えるか .】 使えない
もうちょっと勉強しような。
For Each hoge In Range("A1:Z1")
If hoge.Value <> "" Then
hoge.Value = "▲" & hoge.Value
End If
Next
ちなみに、
Range("A1:Z1").SpecialCells(xlCellTypeVisible).Select
は、セルA1からZ1まで可視の(非表示でない)ものすべて選択、だよ。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】可
vbaでのフォルダの操作について教えてください。
vbaでフォルダのコピー、リネームをしたいのですが、どうやればできるのでしょうか?
ファイルについてはコピー、リネームはできるようですが、フォルダとなるとそのような情報は見つけられませんでした。
自動でフォルダのバックアップを取りたいのです。
ご存知の方よろしくご教示お願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Range 変数
Rangeオブジェクトの行や列の指定に変数を使いたいのですが書式が分かりません
Range(A1) の A1 を a = A1 と事前に宣言して a で行や列を指定してやるにはどうすれば良いのでしょうか?
474 :
471:2005/10/21(金) 15:06:01
>>473 ぐおー、BuildPathメソッドですか。クリエイトとかメイクとかに着目してました。
ありがとうございました。
Excelファイルのデータを自動バックアップしておきたいのですが
以前やっていた方法がどうしてもググっても出てこないので
教えてください。
それは上書き保存しても前の上書きする前のファイルが別に残っている方法です。
それはツールのところにフロッピーみたいな形をしたところがあり、それを右クリックして
何かチェックをすれば出来る方法だったのですが、今いくら探しても見当たりません。
今はExcel2003を使っていて、前の時は相当古いやつだったのでそういう機能は無くなって
しまったのかもしれません。
> 自動バックアップしておきたいのですが
ツール>オプション>自動保存
> ツールのところにフロッピーみたいな形をしたところがあり、それを右クリックして
> 何かチェックをすれば
Excelの場合、ツールアイコンの右クリックメニューは、
どのボタンからでもツールバーメニューしか出ないのでそれは何か他のソフトとの記憶違いだろうな
>>476 やはりその方法しか無いのですね。
以前使っていたのは何せ「95」の時のものでしたので
そういう機能があったのです。。
上書きしてもバックアップファイルは上書きする前のものが残っているのでしょうかね???
自動保存は元ファイルとは別な場所に保存するので元ファイルは残る
因みに95にもそういう機能は無いが、そういう機能を付けることは出来る
もちろん2003でもね
自分でVBAコード組んでもいいし、確かそういうアドインもあるから自分で書けないなら探してきな
479 :
まとめ:2005/10/21(金) 17:27:15
現在回答待ちは 0件
480 :
名無しさん@そうだ選挙にいこう:2005/10/21(金) 17:58:23
WindowsXP Excel2002 VBAでの回答の可否→否
エクセルのヘッダフッタ領域にはワードアートやオートシェイプを入れることは不可能でしょうか。
ワードで社名ロゴをヘッダに入れていましたがエクセルでも同じようにしたいのです。
481 :
名無しさん@そうだ選挙にいこう:2005/10/21(金) 18:02:39
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 無理
【4 VBAでの回答の可否】 お願いします!
すいません、教えてください。
3行目にあるセルが全て空白(空値)の時、という
条件分岐を使いたいのですが、こんなんでいいのでしょうか?
If resultsh.Row("A3") = vbNullString Then
処理
End If
>>480 ロゴを画像にして画像を入れればいい
上に入れるならワードアートやオートシェイプを入れた範囲を
行タイトルにしてもいいし
>>481 If WorksheetFunction.CountA(Rows(3)) = 0 Then
>>475 ファイル(F)→名前を付けて保存(A)→ツール(L)→全般オプション(G)→
バックアップファイルを作成する(B)にチェックを入れる
ではなくて?見当違いだったらごめんなさい。
ツールバーじゃなくてコモンダイアログの方だったってオチか?
【1 OSの種類 .】 Windows98
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 COUNTA COUNTIF MATCH
すいません、
>>409にある質問と一部似ているのですが
Aの列に何行になるか毎回違う文章を貼り付ける時、
その文章の一番下のセル番地を表示するセルを作りたいのですが
式がどうもうまく作れません。
単純にCOUNTAを使うと、途中に改行しが入っていた場合に
その開いた行がカウントされないので、実際の一番下のセル番地より1つ少ない値になります。
>>417にある式を応用してみようと思ったのですが
A列に入れるのが数字ではなく文字なので
#VALUE!が出てしまってうまくいきません。
どなたかわかるかた、よろしくお願いします。
>>485 過去ログ読むと文字列でも使える式が貼られてるよ
ログ持ってなければにくちゃんねるとかで見られる
既出の物をまた貼ってくれるピエロが居るかも知れないけど
過去ログを読むと
hoge ◆hoge//WRxY さんがいかにスゴイかわかるなぁ・・・
ロクに答えも用意できないのに質問者の上げ足ばっかりとってる人達を
尻目に淡々と丁寧に答えてる・・・。なんかもう別格って感じ。
『hogeの一問一答 2ちゃんねるから生まれたExcel解説書
これが新時代のヘルプファイルだ』 とか書籍化したらそれなりに売れそう
>>476.478
エクセルを弄くっていたら、
名前をつけて保存の画面→右上隅ツール→全般オプション
バックアップファイルを作成
私が以前していたのはこれでした。
>>483 上の方で私が探していたことを応えてくださっていたのですね。
気が付かずごめんなさい。
何とか事故解決しました。
ただ以前自分がやっていた時はパスワードをかけずに出来ていたのに
今はかけないと出来ないようになっていたので、頻繁に開ける作業をする時は
不便です。
| 何について調べますか?
| ┌────────────┐
| | お前を消す方法 |
| | |
| └────────────┘
| [ オプション(O) ] [ 検索(S) ]
|
`──────────┐ ┌───
, '´l, ..| ./
, -─-'- 、i_ |/
__, '´ ヽ、
',ー-- ● ヽ、
`"'ゝ、_ ',
〈`'ー;==ヽ、〈ー- 、 !
`ー´ ヽi`ヽ iノ
! /
r'´、ヽ
`´ヽノ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 はい
【5 検索キーワード 】 KeyDown KeyPress
フォーム、コントロール以外の普通のセル上で
TABキー押したときにイベントを起動する方法はありますでしょうか?
もしあれば、その記述を教えてください。
493 :
名無しさん@そうだ選挙にいこう:2005/10/22(土) 11:39:45
【1 OSの種類 .】 XP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】条件付 修飾
お世話になります。
2セルを1項目とした構成です。
キーワード”合”を入れると、そのセル+右隣のセルに自動で罫線(太めの枠線)が引かれるようしたいんですが可能でしょうか?
修飾が目的なので罫線じゃなくても可能ですが、各々条件付書式はすでに3つ使ってます。
A B C D
北海道 東 北
___
3 合 1 3
 ̄ ̄ ̄
494 :
名無しさん@そうだ選挙にいこう:2005/10/22(土) 11:51:18
初歩の初歩の初歩の質問ですみません。
英語の勉強時間をとりあえずExcelに記録したいと思うのですが、
(あの升目に時間を記入)あとで、その数字を足したりするように
できますか?最初からしないとだめですか?
一度もExcelつかった事がなくて、でも今、使い方を覚えてる時間もないので、
計算は、時間がある時にすることにして、とりあえず時間の記入だけしていきたいんですけど・・・
よろしくお願いします。
496 :
名無しさん@そうだ選挙にいこう:2005/10/22(土) 12:00:26
>>494 >その数字を足したりするようにできますか?
出来る
>最初からしないとだめですか?
大丈夫。
また、最初に式(=SUM)を入れておけば、自動で計算してくれちゃう。
ここまで準備しておけば電卓より早い。
497 :
494:2005/10/22(土) 12:01:19
>>492 Application.OnKeyで設定すれば出来ますよ。
Application.OnKey "{TAB}", "KeyPress_TAB"
を実行すれば、以後TABキーを押すごとにKeyPress_TABプロシージャが呼び出されるので
Sub KeyPress_TAB()
End Sub
に処理を書けばいいだけです。
無効にするときは、第二引数を省略してOnKeyメソッドを実行してください。
Application.OnKey "{TAB}"
ブック単位ではなくアプリ(Excel)単位の設定なので、特定ブックのみで有効にしたければ
呼び出すプロシージャの方で特定ブックがアクティブな場合にしか動かないようにするか、
イベントで有効無効を切り替えるかしてください。
>>493 Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Value = "合" Then
Range(Target, Target.Offset(0, 1)).BorderAround xlContinuous, xlMedium
End If
End If
End Sub
をシートオブジェクトに貼ってください。(
>>11参照
4行目が線を引く処理で、「xlContinuous, xlMedium」が線の種類を指定する引数(オプション)です。
線の種類については下記サイトの下の方にある表が参考になると思います。
ttp://www.eastwest-net.co.jp/vba/sample2.htm 枠線とのことなので、周囲四辺に線を引くようにしましたが、(その方が簡単だし
>>493の例のように上下のみの線が良ければ書き直しますよ。
>498
ありがとうございます。
無理だと思ってたのでめちゃくちゃ嬉しいです。
500 :
名無しさん@そうだ選挙にいこう:2005/10/22(土) 15:54:45
>>482 おぉーありがとう。図を入れるボタン全然見てなかったよ。こりゃすごい。
501 :
名無しさん@そうだ選挙にいこう:2005/10/22(土) 15:57:12
500の続き。
ヘッダに大きい画像を入れたら背景ができるんだね。こりゃすごい。
【1 OSの種類 .】 XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】行列の入れ替え
A B
1 カラーテレビ4月 1100
2 カラーテレビ5月 540
3 カラーテレビ6月 650
(以下続く)
いままでこういうやつを
http://www.excel.studio-kazu.jp/lib/e3c/e3c.html ここの(1)のようなやつにいちいち入力しなおして作成していたのですが
じかんがかかるし手間がかかります
なるべく少ない手順でさっと作成できないでしょうか?
カラーテレビ以外にもエアコンなど何十種類もあります
よろしくおねがいします。
>>502 Const TitleCol As Byte = 3 'タイトル列の番号 (C列なら3、D列なら4)
Dim strTemp As String, strMonth As String, strName As String
Dim i As Long, j As Long, bytLen As Byte
Application.ScreenUpdating = False
Cells(1, TitleCol + 1).Value = "1月"
Cells(1, TitleCol + 1).AutoFill Range(Cells(1, TitleCol + 1), Cells(1, TitleCol + 12))
For i = 1 To Cells(65536, 1).End(xlUp).Row
strTemp = Cells(i, 1).Value
bytLen = Len(strTemp)
strMonth = Mid(strTemp, bytLen - 2, 2)
Select Case True
Case IsNumeric(strMonth)
strName = Left(strTemp, bytLen - 3)
Case IsNumeric(Right(strMonth, 1))
strName = Left(strTemp, bytLen - 2)
strMonth = Right(strMonth, 1)
Case Else
MsgBox "データ形式が不正です" & vbCrLf & vbCrLf & i & "行目" & vbCrLf & strTemp
Exit For
End Select
If i = 1 Then Cells(2, TitleCol).Value = strName
For j = 1 To Cells(65536, TitleCol).End(xlUp).Row
If Cells(j, TitleCol).Value = strName Then Exit For
Next j
If Cells(j, TitleCol).Value = "" Then Cells(j, TitleCol).Value = strName
Cells(j, CLng(strMonth) + TitleCol).Value = Cells(i, 2).Value
Next i
Application.ScreenUpdating = True
こんな感じかな。同一データが重複することは考慮してません。
不都合があれば報告して貰えれば出来る範囲で対応します。
VBA解るとのことなので、ご自分で書き換えてもいいですけど。
【1 OSの種類 .】 XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 はい
【5 検索キーワード 】vba オプションボタン 設定 記憶
ユーザーフォーム上に設置されたオプションボタンの選択状況を
次回のフォーム呼び出し時にも同様の選択で呼び出したい、という方法で詰まってます。
sheetに選択状況を書き込んでおくという方法以外で検討していますが
エクセルのみで完結できる方法あるでしょうか?
(もしないのであればtextへの書き出しを予定しています)
505 :
名無しさん@そうだ選挙にいこう:2005/10/22(土) 23:06:05
携帯から失礼します。
1 XP
2 XP
3 はい
4 はい
5 A1セルの数値が500以上なら自作マクロ1を、200以下ならマクロ2を実行させたいのですが、可能でしょうか?
可能ならどう記述すればいいのでしょうか?
>505
if range("a1").value >=500
マクロ1
else if range("a1") <= 200
マクロ2
endif
>>504 以前も同様の質問があったけど
ユーザーフォームのプロパティは保持出来ないから
シートなり外部ファイルなりに書き出して
次回それを読むしかない
>>505 if range("a1").value>=500 Then
マクロ1
elseif range("a1").value<=200 then
マクロ2
end if
別にselect case使ってもいいし、callするかは以後の処理に合わせてお好きなように
508 :
493:2005/10/22(土) 23:53:24
>>498 :hoge ◆hoge//WRxYさん
VBA自体の貼り付けに手こずりましたが、動きました!ありがとうございます。
これで楽になります。解説も付いてて今後のヒントにもなりそうです。
ついでで申し訳ありませんが、
>>493:上下線のバージョンもお願いしたいのですが・・・。
>>508 Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Value = "合" Then
With Range(Target, Target.Offset(0, 1))
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlMedium
End With
End If
End If
End Sub
>>504 他人の仕様をとやかく言うのもなんだが、
外部に保存するより、シートに書き出した方が便利だと思う。
見えるのがいやなら非表示にすればいいし。
511 :
493:2005/10/23(日) 00:15:08
509 :hoge ◆hoge//WRxYさん
感謝です。お世話になりました。
【1 OSの種類 .】 XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 はい
【5 検索キーワード 】ComboBox keydown
ComboBoxのstyleプロパティをfmStyleDropDownListに設定して
Private Sub ComboBox氏名_KeyDown(ByVal vbKeyReturn As MSForms.ReturnInteger, ByVal Shift As Integer)
・・・・
・・・・
End Sub
というkeyDownイベントを書いているのですが、
Enterキー以外のキー(バックスペースキー他)を押下したときも
このイベントが発生してしまいます。
これはこういう仕様なのでしょうか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ・いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA マクロ
マクロの記録でやったらこうなったんですが短くできませんか?
あとこのマクロを他ブックでも使いたかったらPERSONAL . XLSに保存しておけばいいんですよね?
Range("E1").Select
ActiveCell.FormulaR1C1 = "1"
Range("F1").Select
ActiveCell.FormulaR1C1 = "2"
Range("G1").Select
ActiveCell.FormulaR1C1 = "3"
Range("H1").Select
ActiveCell.FormulaR1C1 = "4"
Range("I1").Select
ActiveCell.FormulaR1C1 = "5"
Range("J1").Select
ActiveCell.FormulaR1C1 = "6"
>>512 はい、そういう仕様です。というか引数の名前自体を変えても何の意味もありません。
KeyDownイベントでは第一引数に押されたキーの種別を表すコード番号が格納されますが、
そのコード番号がKeyCodeに格納されるかvbKeyReturnに格納されるかの違いだけです。
逆に組込定数名を使うとその定数を潰すだけですし、イベントの引数名を変えるとコードに汎用性が無くなります。
Enterキーを押下したときのみ処理を行いたければ
Private Sub ComboBox氏名_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
処理
End If
End Sub
としてください。Enterキー以外でもイベントは発生しますが、Enterキー以外では処理が行われなくなります。
>>513 Range("E1:J1").Value = Array(1, 2, 3, 4, 5, 6)
又は
Range("E1").Value = "1"
Range("E1").AutoFill Range("E1:J1"), xlFillSeries
前者は1行で済みますが、入力セルが多ければそれだけArray関数の引数を書かなくてはなりません。
後者は入力セルがいくつでも、範囲("E1:J1")を("E1:Z1")等と書き換えるだけです。
状況に応じてお好きな方をどうぞ。保存はPersonal.xlsで問題ないと思いますよ。
515 :
名無しさん@そうだ選挙にいこう:2005/10/23(日) 12:51:37
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ・いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 日付 Excel 入力 認識
Excelに"10/1"と入力すると,日付と認識されますが,これを文字列と
して認識させる方法はありますか?"'"を前につけるといいとかは検索し
て見つかったのですが,この"'"が邪魔なのです。。
517 :
513:2005/10/23(日) 13:03:08
ありがとうございます
できました!
しかし
Range("E1:E6").Value = Array(1, 2, 3, 4, 5, 6)
とやるとぜんぶ1が入力されてしまいます
どのようにすればうまくいくのでしょうか?
518 :
515:2005/10/23(日) 13:05:10
519 :
513:2005/10/23(日) 13:19:34
下のでやったらできました
ありがとうございました
>512
おもろい。そういう解釈して修正する人もあるのか
入門書とかって関数の使い方は書いてても意味は書かないもんな
全てはSendMessageにたどり着くことをしっかり説明すべきだな
【1 OSの種類 .】 Windows2000SP4
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA SUMIF
これ短くなりませんか?
Range("N2").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R1000C1,""*Z1-01*"",R1C2:R1000C2)"
Range("N3").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R1000C1,""*Z1-02*"",R1C2:R1000C2)"
Range("N4").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R1000C1,""*Z1-03*"",R1C2:R1000C2)"
Range("N5").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R1000C1,""*Z1-04*"",R1C2:R1000C2)"
Range("N6").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R1000C1,""*Z1-05*"",R1C2:R1000C2)"
Range("N7").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R1000C1,""*Z1-06*"",R1C2:R1000C2)"
Range("N8").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C1:R1000C1,""*Z1*"",R1C2:R1000C2)"
キーボードマクロ?
>>521 Dim i As Long
For i = 2 To 8
Cells(i, 14).Formula = "=SUMIF($A$1:$A$1000,""*Z1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Next i
525 :
名無しさん@そうだ選挙にいこう:2005/10/23(日) 17:19:56
10行10列のマスに1〜100の数字を重複することなく
ランダムに入力したいのですが、どうすればよいのでしょうか?
526 :
521:2005/10/23(日) 18:09:01
ありがとうございます
できました
最後にもう一度聞いてもよろしいでしょうか
こういう場合はどうやって短くしたらいいんでしょうか?
Dim i As Long
For i = 2 To 8
Cells(i, 14).Formula = "=SUMIF($A$1:$A$1000,""*Z1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Cells(i, 15).Formula = "=SUMIF($A$1:$A$1000,""*V1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Cells(i, 16).Formula = "=SUMIF($A$1:$A$1000,""*S1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Cells(i, 17).Formula = "=SUMIF($A$1:$A$1000,""*E1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Cells(i, 18).Formula = "=SUMIF($A$1:$A$1000,""*Y1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Cells(i, 19).Formula = "=SUMIF($A$1:$A$1000,""*J1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Next i
528 :
512:2005/10/23(日) 18:32:33
>514
hogeさんありがとうございました。
529 :
名無しさん@そうだ選挙にいこう:2005/10/23(日) 18:37:49
いつのまにかエクセルのいちばん上の青い棒が
なくなりました
どーすればいいですか?
530 :
529:2005/10/23(日) 18:40:04
エクセル2003です
531 :
521:2005/10/23(日) 19:02:20
523がわからなかったのにそれの応用といわれても・・・
わかりません
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可
【5 検索キーワード 】 [for, On Error GoTo, エラー処理, excel]
Sheet1に貼ってある図をSheet2に一回はりつけて、
その後Sheet3に貼り付けるという操作を複数の図に対して行いたいです。
グラフの数字部分(i)はとんでいる部分もあります。
そこで、グラフが存在しない場合にOn Error Goto で次ぎの図へ移るように、処理しているつもりです。
しかし、一回目に図画存在しない場合はうまくOn Error 処理ができるのですが、
2回目の図不存在エラーはなぜか回避できません。
On Error resume Next で指定した場合は、何回でもエラー処理はうまくいきました。
ぜひご教授をお願いします。
Sub aaaaa()
Dim i As Integer
j = 1
For i = 30 To 1 Step -1
On Error GoTo eskip
Sheets("Sheet1").Shapes("AAAAA " & i).Select
Selection.Cut
Sheets("Sheet2").Select
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
Selection.Cut
Sheets("Sheet3").Select
Cells(j, "B").Select
ActiveSheet.Paste
Sheets("Sheet1").Activate
j = j + 1
eskip:
Next i
On Error GoTo 0
End Sub
>>531 教えてもらった内容を、自分で理解しようとするくらいの努力は
してみてもいいと思うよ。
どうしてもわからなければ、「ここの部分がわからない」という形で
聞けば、また答えてくれる人もいるだろうけど。
>>525 VBAでやるのと、作業セルを使って数式で出すのとどっちが良いですか?
一応OSとExcelのバージョンも書いてくださいね。
>>526 Const LIST As String = "1234567890123ZVSEYJ"
Dim i As Long, j As Long
For i = 2 To 8
For j = 14 To 19
Cells(i, j).Formula = "SUMIF($A$1:$A$1000,""*" & Mid(LIST, j, 1) & IIf(i = 8, "1", "1-0" & i - 1) & "*"",$B$1:$B$1000)"
Next j
Next i
Choose使っても良いのですが、可変部が1文字のみならMidで処理した方が楽だし速いと思います。
>>529 「いちばん上の青い棒」というのはタイトルバーのことかな?
それなら全画面表示モードになっていませんか?
メニューバーの「表示 > 全画面表示」をクリックしてみてください。
>>532 On Error Resume Next
For i = 30 To 1 Step -1
Err.Clear
Sheets("Sheet1").Shapes("AAAAA " & i).Select
If Err.Number = 0 Then
Selection.Cut
:
j = j + 1
End If
Next i
こんな感じでどうでしょうか?
>>526 Dim i As Long, j As Long
Const k As String = "ZVSEYJ"
For i = 2 To 8
For j = 14 To 19
Cells(i, j).Formula = "=SUMIF($A$1:$A$1000,""*" & Mid$(k, j - 13, 1) & _
"1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Next j
Next i
または、
Dim i As Long, j As Long, k As Variant
k = Array("Z", "V", "S", "E", "Y", "J")
For i = 2 To 8
For j = 14 To 19
Cells(i, j).Formula = "=SUMIF($A$1:$A$1000,""*" & k(j - 14) & _
"1" & IIf(i = 8, "", "-0" & i - 1) & "*"",$B$1:$B$1000)"
Next j
Next i
でどうでしょうか。
537 :
名無しさん@そうだ選挙にいこう:2005/10/23(日) 20:33:05
>>535 【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel 2002 SP-2
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル TIPS 100 乱数 ランダム 等をいろいろと試しました。
10行10列のマスに1〜100の数字を重複することなく
ランダムに入力したいのですが、どうすればよいのでしょうか?
VBAでOKですが、今後の勉強のために
作業セルを使って数式で出す方が
希望です。
>>537 K1=INT(RAND()*10000)+ROW()/100
L1=RANK(K1,K$1:K$100)
A1=INDEX($L$1:$L$100,(ROW()-1)*10+COLUMN(),1)
K1、L1の式は100行目までフィルコピー。
A1の式はJ列まで、及び10行目までフィルコピー。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可 。でも出来ればVBAなしで
すみません教えてください。
ある複数のセルの範囲を入力者に変えられたくないのですが、特定のセル範囲を保護するにはどうするのでしょうか?
シート保護をすると全部のセルが保護されてしまうようですが、特定の、飛び飛びの範囲だけを保護したいのです。
よろしくご教示ください。
またこれが大切なのですがVBAで保護する予定のセルの値を取得する処理があるのですが、問題なく取得できるのでしょうか。
あわせてご教示いただけたら大変助かります。お願いいたします。
>>539 保護したくないセルのロックを外してシートの保護を行ってください。
外し方は任意のセルを選択し、「セルの書式設定 > 保護 > ロック」の
チェックを外すだけです。
また、ロックの有無や保護内容に関わらず、VBAでのセルの値の取得は可能です。
【1 OSの種類 】 Windows2000
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか 】 勉強はじめたばかり
【4 VBAでの回答 】 可
VBAの独学を始めました。本を買ってVBAエディタでプログラムを書き出しましたが、
コード作成の途中で実行してみるにはどうすればいいでしょうか。
VBAエディタには実行ボタンが見当たりません。エンターキーを押したら改行されるだけです。
>>541 ・ツールバーの右向き三角アイコン (表示されてなければ「標準」ツールバーを表示させる)
・メニューバー > 実行 > Sub/ユーザーフォームの実行
・F5キー
どれでもお好きなものをどうぞ。
543 :
541:2005/10/23(日) 22:33:36
>>542 サンクス
右向き三角アイコンで実行しました。
構文エラーがでた (++ ); ;
>>543 実行前に、メニューのデバッグ→VBAProjectのコンパイルを
やっとくといいよ。
545 :
539:2005/10/23(日) 22:41:12
>>540 出来ました、ありがとうございました。
助かりました。
546 :
543:2005/10/23(日) 22:43:30
>>544 おお、Nextがありません とか End if がありませんとかたくさんでてきた。
サンクス。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ(勉強中)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 アマゾンで評判の基礎の本は買いました。
1 2 3 4 5 6・・・
A 名前 性 所属 年月 労働時間 他のデータ
B 佐藤 男 1課 05/08 158
C 鈴木 男 2課 05/08 170
D 田中 女 3課 05/08 163
E 山田 女 2課 05/09 200
F 木村 男 1課 05/09 167
こんなリストをシートで作っておいて、
条件を指定するフォームを作って
その条件に従った統計を出力するという
ことをやりたいのですが、
VBAでやろうとするとどの程度の難易度になるでしょうか?
ちなみにピボットテーブルは、配布先の管理職が
いじり方がわからないので却下です・・・。
イメージとしては、オートフィルタの条件設定を
誰でもわかるようなひとつのフォームに
まとめてリストの再構築をするって感じです。
マクロVBAの勉強始めたばっかなんですが、難易度のイメージが
つかめないのでどういった方向で勉強していけばいいのかが
分からないでいます。
>>547 もう少し具体的に条件を書かないと、エスパー以外は応えられないと思う。
549 :
547:2005/10/23(日) 23:23:24
>>548 すみません・・・そうですよね。
やりたいことは、
上の表でいうと(行と列の数字と英字逆でした)
1.エクセル起動
2.フォームがある
3.フォームには
@性
A部署
B労働時間(x時間以上のみ抽出)
などの条件を指定するチェックボタン、リストがある。
(ホントはもっとすごい数の項目があります)
4.条件設定してボタン押す。
5.条件に従って抽出したリストが表示される。
てことをやりたいです。
取り急ぎコードを教えてくれってわけではありませんので、
素人がどの程度勉強すればできるようになるかということだけで
結構ですので教えてください。
>>549 > 素人がどの程度勉強すればできるようになるか
デキるやつなら丸1日費やせば勉強時間も含めて完成までいけるだろ
ヘボい奴なら一生掛かっても無理
他の言語経験者なら数時間程度で出来るかな
お前の程度なんて知らないので、お前がどれがけ勉強すれば
出来るようになるかはわからない
>>537 これ考えてみたけど、作業セル使ってでは無理なのではないだろうか?
>>551 >>538でできてますやん。
K列の+ROW()/100が最初意味わからなかったけど実行してみたらわかった。
頭ええなあ。
553 :
名無しさん@そうだ選挙にいこう:2005/10/24(月) 02:24:45
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少し
【4 VBAでの回答の可否】 可(出来ればVBAでやりたいです)
▼やりたいこと
ランダムな時刻を表示させたい
▼現在やってる方法(RANDBETWEEN関数にて)
A1:A2000までの縦の列に08〜23までのランダムな数値を表示させ、同じように
B1:B2000までの縦の列に01〜59までのランダムな数値を表示する。
C1=A1&":"&B2としてC2000までコピペし2000通りのランダム(08時〜23時)までの時刻を表記させています。
▼質問
これをリスト内で行いたいのですが、リスト内で行なうと並び替え等をする度に
RANDBETWEEN関数が働いてしまい、いたちごっこになってしまいます。
今は別のシートで一度RANDBETWEEN関数を使いそれをメモ帳などにコピーしてから
リスト内に貼り付けて凌いでいます。
RANDBETWEEN関数を使わずにVBAでスマートにやりたいのですがご教授いただけませんか?
554 :
553:2005/10/24(月) 02:29:14
すみません、訂正です
誤:C1=A1&":"&B2としてC2000まで
正:C1=A1&":"&B1としてC2000まで
> リスト内で行いたいのですが
リスト内って何よ?
"リスト内"って言葉はいろんな解釈ができるんだが
それと時と分をA列とB列に分ける必要ってあるの?
単に08:01〜23時:59まで(00分は無し)のランダムな時刻を2000行用意したいってだけなら
TimeSerial(Int(Rnd() * 16) + 8, Int(Rnd() * 58) + 1, 0)
とかをループで回せばいいじゃん
556 :
553:2005/10/24(月) 06:23:31
TimeSerial関数、大変勉強になりました。
>"リスト内"って言葉はいろんな解釈ができるんだが
昇順、降順で並び替えの出来るリストです。
A1:A2000に人名 B1:B2000にランダムな時間 C1:C2000に行動を明記し
A列の人がB列の時間にC列をする表を作り、それをリスト化してB列の時間で昇順で並び替えをして上から順に誰(A)が何(C)をするか見やすくしたかったのです。
>それと時と分をA列とB列に分ける必要ってあるの?
必要はないですね、VBAを自分で記述するのは今回が初めてだったので
[エクセル,ランダム,関数]で検索してHITしたRANDBETWEEN関数を使い、列を分けて
パズルみたいな感覚でむりやり時間表示を作っていました。
[改行が多すぎると言われたので
>>557へ]
557 :
553:2005/10/24(月) 06:24:44
[続き]
TimeSerial関数を使い簡単に以下のB1からB20までランダムに時間を表示させるスプリクトを
作ってみたのですが、20行を1行1行、20回繰り返すだけでも結構時間がかかってしまって
本来の2000行を実行するには時間がかかりすぎてしまいます…
繰り返しではなくて1行目から2000行目まで一気にパッと表示させることは出来るのでしょうか?
TimeSerial関数を使って作ってみたものです↓
Sub 時間表記()
Dim aaa As Long
For aaa = 1 To 20'←20回繰り返す
'↓B1のセルから表示を開始させる
Cells(aaa, 2) = TimeSerial(Int(Rnd() * 16) + 8, Int(Rnd() * 58) + 1, 0)
Next aaa
End Sub
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 IF
もしA2のセルにAAを含むなら次の処理をし
AAを含まずBBを含むなら次の処理をする
AAもBBも含まないときは次の処理をする
は
If 条件式1 Then
条件式1が満たされたときの処理
・
・
ElseIf 条件式2 Then
条件式1は満たされないけれど、条件式2は満たされるとの処理
・
・
Else
条件式1も、条件式2も満たされないときの処理
End Sub
でいいんでしょうか?
またAAを含む場合はどうあらわしたらいいんでしょうか?
559 :
525:2005/10/24(月) 08:29:33
>>538 様
おぉ!すげ〜!
ホントに出来てる!それも超短時間で!
仕組みはどうなってるんだ!?後で勉強しよっと。
ありがとうございました!
A2にAAAAを含む場合B1+C1
A2にBBBBを含む場合B1-C1
はこれでいいんですか?
Select Case Range("A2")
Case "AAAA"
Range("D1") = Range("B1") + Range("C1")
Case "BBBB"
Range("D1") = Range("B1") - Range("C1")
End Select
562 :
名無しさん@そうだ選挙にいこう:2005/10/24(月) 16:09:48
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード 】 検索して一応理解したつもりだった
グラフで、近似曲線を作成して
y = -9E-05x^5 + 0.0543x^4 という式が得られました。
Eが指数表現ということは調べて分かったのですが、
xの値を代入して計算してもどうしてもyの値になりません。
符号から桁から数値までまるでとんちんかんな値が出ます。
Eを少数に設定しても(0....9などにしても)やはり
yの値はおかしいです。
何か理由があるのでしょうか。
よろしくおねがいします。
実際にどう組んで、どういう値が返ったのかくらい書けよ
通貨型変数で小数点第三位がうまく表示されません
とりあえず以下の用にやると
小数点第三位で自動的に丸められてしまう
数字をそのまま表示したい場合はどうすればよいでしょうか?
Private Sub CommandButton1_Click()
Dim a As Currency
Range("a1").Select
Selection.NumberFormatLocal = "#,##0.000_ ;[赤]-#,##0.000 "
a = 12.123
Range("a1").Value = a
End Sub
winXP
Excel2003
A-1からA-20,B-1からB-20,C-1からC-20,D-1からD-20まで席があって
すでに埋まっている席がA列に
A
1 A-1
2 A-3
3 A-4
4 B-1
5 B-7
6 C-2
7 C-7
こういう感じであるんですけど
空いている席をC列に書き出したいんですよ
関数使ってできないでしょうか?
>>557 Dim i As Long, hoge(1 To 2000, 0) As Date
Randomize
For i = 1 To 2000
hoge(i, 0) = TimeSerial(Int(Rnd() * 16) + 8, Int(Rnd() * 58) + 1, 0)
Next i
Range("B1:B2000").Value = hoge
これでも遅いですか?
>>558 > でいいんでしょうか?
はい。
> またAAを含む場合はどうあらわしたらいいんでしょうか?
If Range("A2").Value Like "*AA*" Then
If InStr(1, Range("A2").Value, "AA") > 0 Then
InStr関数を使う方法では、第一引数の「1」と比較演算の「 > 0 」は無くても動きます。
>>560 > はこれでいいんですか?
「含む」ではなく「一致」でいいならそれでOKですが、
「含む」をSelect Caseで処理するならこんな感じかな。
Select Case True
Case (InStr(1, Range("A2").Value, "AAAA") > 0)
Case (InStr(1, Range("A2").Value, "BBBB") > 0)
End Select
>>564 うろ覚えですが、Currency型の値をセルに直接代入すると
ロケールに合わせて丸められる仕様だったような気がします。(他のソフトだったかも
とりあえずFormat関数通して代入すれば丸められませんよ。
Range("a1").Value = Format(a, "#,##0.000")
というか、Currency型じゃなくても良いのでは?
>>565 C1=IF(COUNTBLANK(D$1:D$80)+ROW()<=80,INDEX(E$1:E$80,SMALL(D$1:D$80,ROW()),1),"")
D1=IF(COUNTIF(A$1:A$80,E1),"",ROW())
E1=INDEX({"A";"B";"C";"D"},INT((ROW()+19)/20),1)&"-"&MOD(ROW()-1,20)+1
上記3つの式を入力したら、C1:E1を選択して80行目までフィルコピーしてください。
D,E列は参照を書き換えれば別の列でもいいですし、非表示にしても構いません。
>>567 ありがとうございます。
Format関数を使用してやってみます。
Win2000+Excel2000でVBAチャレンジしてます。
DとGは整数です。
D2とG2、D3とG3、D4とG4、D5とG5・・・・・D12とG12を比較してD>GならD-GをEに入れようと考えて
Dim i As Integer
For i = 2 To 12
If Range("Di") > Range("Gi") Then
Range("Ei") = Range("Di") - Range("Gi")
End If
Next
としましたが、うまくいきません。ほかのところは問題ないようなのでここがとらぶっていると思います。
上のコードはどこがダメですか?
Range("Di") → Range("D" & i)
571 :
553:2005/10/24(月) 21:03:39
>>556 hogeさん
本当にありがとう御座います。
見事一瞬で2000行の表示が出来ました。
572 :
569:2005/10/24(月) 21:06:16
>>570 ぁぁあああー、そうなんですか。わかりました。ありがとうございます。
【1 OSの種類 .】 XP
【3 VBAが使えるか .】 はい(勉強中)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Byref 参照渡し ByVal
ByValは普段FunctionとかSubにデータを渡すのに使ってるんでまぁ判る
んですが、ByRefについてネットで見たりしてもいまいち感じがつかめま
せん。どういう時にどういう風に使えばいいのか、具体例とかを交えつ
つ教えていただけないでしょうか。
参照渡し 値渡し@Google
で理解できない奴にこれ以上何を解説しろと?
それにこれはExcelの仕様に関するものではなく
VBを含むプログラミング言語全般の仕様なので、
聞きたければプログラム技術板に行きな
576 :
565:2005/10/24(月) 23:18:40
>>567様ありがとうございます!
あともしよかったら
マクロをつかったやり方も教えていただけないでしょうか
後からで非常に申し訳ないですが・・・
すみません、教えてください。
頂いたデータを印刷してみると、
罫線を含めて、すべてが二重に印刷されてしまいます。
他のデータは普通に印刷できるのに、困ってしまいました。
どこか二重印刷のような設定がなされているのでしょうか?
教えていただけると助かります。
印刷部数を1に汁
579 :
577:2005/10/25(火) 07:39:35
>>578 二部印刷されるわけではなくて、
文字や罫線にシャドウが付いたようになってしまうのです。
> 頂いたデータ
そのデータ(ブック?)をくれた人に問い合わせ汁
問い合わせ出来ない状況or相手も解らないなら
> ・ バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
581 :
名無しさん@そうだ選挙にいこう:2005/10/25(火) 11:24:49
2003を使ってます。
印刷プレビューでお聞きしたのですが、
画面上、セルのなかに打ち込んだ文章がセルなのかで自動的に
折り返されていますが、印刷プレビューでは折り返されず、
きちんと1行で表示されています。
これではプレビューの意味がないのですが、これは仕様ですか?
583 :
名無しさん@そうだ選挙にいこう:2005/10/25(火) 11:33:07
セル中のIF式でマクロを呼び出し実行って可能なのでしょうか?
1.A1を変えるとB1も同時が変化する
2.B1を変えるとA1も同時に変化する
参照するだけだと1か2のどちらかだけは可能になるんですが
1,2が両方が可能になる方法とかありますか?
>>584 A1=B1+3
B1=A1+3
これを循環エラー出さずに入力する方法ということ?
わしは知らん。
A列に何百個もこういう風に1000個くらい並んでるんです
でB列にA列の中から800個ぐらい抜き取ったのがかかれてるんです
でA列にあるけどB列に書かれなかったやつをC列に書き並べたいんですよ
関数使ってどうやればいいんですか?
A B
18765DFE 12456JJHF
47839AWE 9977JJUY
76664HH 0977KIUNH
44566GTY KIUH8 7
98755NHH
JjJJtde44
44544FF
588 :
名無しさん@そうだ選挙にいこう:2005/10/25(火) 14:37:18
>>584=587?
同じ人なら2回目以降の書込みには名前欄に最初の発言番号を入れてください。
ここはIDが出ないので誰の発言かまったくわからない。
もし別人だとしたら二人ともテンプレ読んで最低限の情報は提出してください。
力になってあげたくても答えるほうにも限界があります。
>>584 VBAでイベントプロシージャ使うとか
シート名右クリック→コードの表示で以下みたいな
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then Target.Offset(0, 1).Value = "A変えた"
If Target.Column = 2 Then Target.Offset(0, -1).Value = "B変えた"
Application.EnableEvents = True
End Sub
>>587 C列に
=ISERROR(MATCH(A1,$B$1:$B$800,FALSE))
でA列と同じだけコピーして、C列の値を「FALSE」で抽出とか?
一発でもできるんだろうけど考えるのがめんどくさい
>>584 ツール→オプション→計算→反復計算→最大反復回数
最初は反復回数を1にしておき、F9キーを押しつつ動作確認。
>>583 >>584 >>587 >>1 > ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
> ★質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
> ★要望は具体例や図を使って明確かつ具体的に。
> ★質問前に
>>2-20あたりの注意書きやQ&Aも読もう。
> ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
回答者の方もルール守ってない質問者には答えないように
593 :
587:2005/10/25(火) 17:55:03
すいませんでした
環境は以下です
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 多少
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 関数
Excel2000で以下の記述はコンパイルエラーが出ませんが、実行しても
アイスやホットになりません。なんでですか?
Dim i As Integer
For i = 7 To 37
Select Case Range("D" & i)
Case Is = "アイスコーヒー"
Range("D" & i).Value = "アイス"
Case Is = "ホットコーヒー"
Range("D" & i).Value = "ホット"
・
・
・
End Select
Next
596 :
名無しさん@そうだ選挙にいこう:2005/10/25(火) 23:12:21
質問させてください。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ある程度は・・・
【4 VBAでの回答の可否】 可
【5 検索キーワード 】countif sumif dcount など
塾の成績処理をしています。
A B C D
1 名前 性 点数 成績
2 佐藤 男 90 5
3 鈴木 男 80 4
4 木村 女 70 3
5 田中 女 40 2
6 加藤 男 80 4
countifでは、男女合計の中から、
成績をカウントするだけで、男子・女子がそれぞれ何人いるかわからず・・。
男女別に、1〜5の成績を集めたものが欲しいのです。
オートフィルタを使わずに、
それぞれの成績ごと、男女それぞれ何人いるか
数えたいのですが、どうしたらよいでしょうか。
>>595 当方WindowsXp Excel2002だけど、
ちゃんとアイスやホットにかわるよ。
D7からD37のデータがおかしくないか?
たとえば、前後に空白が入ってるとか。
598 :
名無しさん@そうだ選挙にいこう:2005/10/25(火) 23:38:44
Excel2002
セルの結合をさせた部分に、文字を直接入力することはできますが、
コピー&ペーストで貼り付けようとすると、「結合されたセルの一部を
変更することはできません」となりますよね?
これを、セルの結合を解除しないまま、コピー&ペーストで貼り付ける手段はないでしょうか?
宜しくお願いします。
>598
貼り付け先も同じ形にセルを連結させとくとか。
600 :
598:2005/10/26(水) 00:03:52
>>599 いえ、貼り付け元は結合もなにもされていませんよ。単なるテキストデータをコピーしたものです。
試しに、ExcelのセルをA1〜D1までを結合させてみてください。
そして、私のレスの一部でもいいので、コピーして、その結合した貼り付けてみてください。
貼り付けられないと思いますよ。
602 :
名無しさん@そうだ選挙にいこう:2005/10/26(水) 00:10:19
条件付き書式で、そのセルになんらかの文字もしくは数字もしくは記号が入っていれば
そのセルを水色に塗りつぶす、という設定をしたいのですが、それは実現可能でしょうか?
例えば、あるセルに 10/26 と入力したら、そのセルは水色に塗りつぶされるという感じ
したのですが。
603 :
598:2005/10/26(水) 00:11:36
>>601 か、感動しました!!!!!
ものすごく感動しました。
そんな単純なことだったのですね。今までずっと不便に思っていました。
どうもありがとうございました!!!!!
>>596 具体的にどうしたいの?
要望が脳内完結していて、意味不明
例えば「1〜5の成績」って何よ?
1〜5行目とか、上位1〜5位とか、
オマエ理論で脳内補完出来ない俺等にも伝わるように書けよ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 鋭意勉強中
【4 VBAでの回答の可否】 可
【5 検索キーワード 】日付表示 置換 セルの結合(?)など
こんばんは。現在エクセルの表に以下のようなデータがあります。
(実際には行1から行20まで同様形式のデータが入っています)
セルA1 セルB1 セルC1 セルD1
2005 0712 18:00 19:30
(列Aが年、列Bが月日、列CとDは時刻を意味するとします)
このとき、同じ行の列Eと列Fのセルにそれぞれ
セルE1 セルF1
2005/07/12 18:00:00 2005/07/12/ 19:30:00
のように各セルの情報を組み合わせ秒数に00を付け足したような
データを入力させるマクロは組めますでしょうか?
セル中の数字、スラッシュ、スペースは全て半角です。
どうぞよろしくお願いいたします。
606 :
名無しさん@そうだ選挙にいこう:2005/10/26(水) 00:30:47
607 :
596:2005/10/26(水) 00:34:37
>>604 わかりづらくて、すみません。
えーと、カウントする条件が二つ、という意味です。
上の例で言えば、女子の中で、”1”の成績を取ったものは何人か。
男子の中で、”5”の成績を取ったものは何人か、といったことなのです。
わかりますでしょうか。。。
今、配列数式を調べていましたが、なかなか方法が見つかりせん。
>>605 マクロ使わないでも、関数で出来ると思う。
A B C D E
1 名前 性 点数 成績
2 佐藤 男 90 5 男5(=B2&D2)
3 鈴木 男 80 4 男4(=B2&D2)
4 木村 女 70 3 女3(=B2&D2)
5 田中 女 40 2 女2(=B2&D2)
6 加藤 男 80 4 男4(=B2&D2)
7 男5 =countif(e$2:e$6,a7)
8 女5 =countif(e$2:e$6,a8)
うわ、一番右の数式みすった。まあいいや、判るだろう
>605
=DATEVALUE($A1&"/"&MID($B1,1,2)&"/"&MID($B1,3,2))+TIMEVALUE(C1&":00")
=DATEVALUE($A1&"/"&MID($B1,1,2)&"/"&MID($B1,3,2))+TIMEVALUE(d1&":00")
書式 yyyy/mm/dd hh:mm:ss
611 :
602:2005/10/26(水) 00:58:39
これは、やっぱり無理でしょうか?
どなたか分かる方いませんか?
>>610 わざわざDATEVALUE関数なんて使わずDATE関数使えば?
「&"/"&」なんてので区切らず、「,」ひとつで区切って書ける
TIMEVALUEの方も「&":00"」は要らないし
>>611 無理っつーか、逆にテンプレに載ってるような簡単な内容だから
レス付かないだけだと思うが
とりあえず
>>6の例5の条件式を否定条件として条件付き書式で使えば良いだけ
613 :
605:2005/10/26(水) 01:16:21
>>610 できました!ありがとうございます。
なるほどこうやって値を統合するんですね。
とてもためになりました。
この方法だと日付が 5月7日 のような表示になってても
同様に変換できそうですね。
ありがとうございました。
614 :
605:2005/10/26(水) 01:24:15
>>612 これまたできました!
非常に勉強になりました。どうもありがとうございます。
615 :
596:2005/10/26(水) 01:42:13
>>609 ありがとうございます。できました。
このような方法、思いつきもしませんでした。
616 :
584:2005/10/26(水) 02:09:59
>>586 そうですか。ありがとうございました。
>>588 まったく別人です。聞いてる内容も全く違います。
>>589>>591 参考にして上手く良くか試してみたいと思います。
ありがとうございました。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
住所を書き込んだ物があります。
それから郵便番号を出すアドインありますよね
同様にしてマピオン(地図サイト)へのへのリンクを生成してくれる
アドインはありませんでしょうか?
あるいは地図サイトへのリンクを自動生成する方法はありませんか?
619 :
595:2005/10/26(水) 06:44:26
>>597 ありがとうございます。
ご指摘のとおり、前後に空白が2個ずつ入っていました。
"と"のあいだにいれたらここも動き出しました。
感謝 ! !
620 :
602:2005/10/26(水) 07:28:54
>>612 やっぱりよくわかりません・・・
条件付き書式に
>>6の例5のようなif関数って使えないですよね?
【1 OSの種類 】 WindowsXP SP1
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか 】 はい
【4 VBAでの回答の可否】 可
エクセルを最大化で使用しているときに、
タスクバークリックで他のアプリ(エクスプローラなど)に
切り替えようとしてもクリックがキャンセルされて
画面が切り替わらないことが多々あります。
他のアプリやWord2003などからの切り替えではその現象がおきません。
Excel2003から他のアプリに切り替えるときにだけ発生します。
(Excelが複数起動していた場合、ExcelからExcelでも発生します)
説明がわかりづらいかもしれませんが・・・
なおしかたなどわかれば教えてください。
それはExcelっつーよりWinXPの問題かな
【OSの種類 .】 WindowsXP (Home)
【Excelのバージョン 】 Excel2002
【検索キーワード 】 Excel TEXT関数 参照
TEXT関数に関する質問です。
A │ B │ C
───────────
1 │ あ │ 1 │ あ-0001
A列とB列は変動して2つを組み合わせてC列にコードを作ります。
現在C1に書いている数式は
=A1&TEXT(B1,"-0000") なのですが
TEXT関数の表示形式指定だけで A1&"-0000" のようにする事は可能ですか?
>>620 条件付き書式→「セルの値が」「次の値に等しくない」「=COUNTIF(A1,"*" )」
625 :
621:2005/10/26(水) 11:41:58
>>622 XPの問題ですかぁ。
ありがとうございました。
XPで、Excel2002を使用しています。
セルにメアドやURLを書き込むと、
自動的に青文字になり、リンクが張られてしまうのが不便です。
単なるテキストとして認識して欲しいのですが、
これはどこかで設定が可能なのでしょうか?
アドバイスお願い致します。
>>626 一番最初に ' を付けるか、
右クリック→ハイパーリンクの削除で出来ます。
628 :
626:2005/10/26(水) 11:56:48
629 :
626:2005/10/26(水) 12:12:35
度々すみません。
ヘルプで「複数のハイパーリンクを同時に無効にする」
というものを見つけて実践しているのですが、
全くうまくいきません。
内容としては、空白セルに「1」を入力し、そのセルをコピー。
Ctrlキーを押しながら、無効にする各ハイパーリンクをクリック。
ということなのですが、、、何かコツがあるのでしょうか。
ご存じの方、お願い致します。
>>629 1 を入力したセルをコピーしたら、リンクの入っているセルを選択します。
この時、普通にクリックしただけではリンク先にジャンプしてしまうので
Ctrlを押したままクリックしないと、セル選択は出来ません。
複数あるのなら、Ctrlを押しっぱなしにして、次々セルを選択します。
セル選択が完了したら、選択セル上で右クリック
形式を選択して貼付けを実行する。
と書かれていますね。
631 :
626:2005/10/26(水) 12:23:41
>>630 できました!ありがとうございます。
2002のヘルプだと、「各ハイパーリンクをクリックします」と
書いてあるんです。
630さんのように、「選択します」と書いてくれれば一発で分かったのに。
助かりました!
>>623 不可能、って言うか実際書いてみたらわかるだろ。
633 :
623:2005/10/26(水) 12:55:37
>>632 返答有難うございます。
昨日同じ事をしようとしたら、書式の中に参照を用いるのがはずみで出来たんですよ。
その時のデータを消してしまったので比べる事が出来ず
今日になって色々書いても出来なかったので質問を書かせて頂きました。
昨日出来た、と思ったのも何処か勘違いかもしれませんね。
有難うございました。(&レス消費すいません)
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】多少
【4 VBAでの回答の可否】 可
【検索キーワード 】 行列関数 INDEX関数 MATCH関数
A列に全品目(1000個)が書かれているんですよ
でB列に全商品の中から今ある品目が書かれているんです
こんな感じです
A B
HHU-767-009 NMJ-871-135
KJA-998-876 MKA-678-986
NMJ-871-135 BHN-123-453
MKA-678-986
(以下1000まで続きます)
で
C列にいま手元にない品目をずらーっと表示させたいんですよ
どうしたらいいんでしょうか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】つかえません
【4 VBAでの回答の可否】 否
【検索キーワード 】
シート1 A列・B列・C列の3行目以降にそれぞれ日付・取引先名・請求額
シート2 A列・B列・C列の3行目以降にそれぞれ日付・取引先名・入金額
シート3 A列・B列・C列の3行目以降にそれぞれ日付・取引先名・売掛金残高
という風に表を作成したいと思っています。
シート1は請求書を書いた時点で記入します。
シート2は入金があった時点で記入します。
シート3には、シート1とシート2を監視して
シート1の取引先の請求額からシート2の入金額を差し引いた上で
シート3のそれぞれの項目へ表示します。
シート1に取引先があり、シート2にはない場合は、
新たにシート3の取引先名へ追加します。
つまり。
シート1 シート2 シート3
9/1 A社 50000 10/1 A社 30000 10/4 A社 10000
9/1 B社 50000 10/1 B社 50000 10/1 B社 0
9/1 C社 50000 10/4 A社 10000 9/1 C社 50000
と表示させるためにはシート3の関数はどのように指定すればいいですか?
日付は入金最新の入金月日を表示させたいです。
連投ごめんなさい。
【4 VBAでの回答の可否】 否 としましたが、
もし関数では難しくなり、VBAで可能ならVBAを教えて頂けませんか。
宜しくお願いします。
>636
ひとつのシートに全部まとめてはだめですか?
その方が一覧性があって見やすいと思うのですが。
例えば、項目名はA列から
請求日、取引先、請求額、入金額、手数料(振込手数料を引かれた場合)、入金日、残高
残高は「請求額−入金額−手数料」
639 :
636:2005/10/26(水) 15:28:31
ある企業から入金があったとすると、
取引先を探した上で入金額を記入しないとダメですよね?
取引先が結構大量にありますので、
その場合だとかなりの手間がかるかとおもうのですが。
取引先を探すというのは目で上から下まで探しているのですか
Ctrl+F で検索してるのですか
自分の経験で申し訳ないのだが、自分はCtrl+Fで検索して全く問題なかったです。
因みに1か月2000件の請求書発行でした。
その後1年後ぐらいに、システム化になりましたけど。
それにその方式だとシート2に取引先を入力する時に、一言一句間違わずに入力しなければ
シート3には正しい取引先ごとの残高がでないですよね。
検索して入金額のみ入力するのと
別シートに取引先、入金額を入力するのとでは、
自分としては、前者の方が労力が少ないと思います。
あくまでも自分としてはですよ。
VBAプロジェクトのデジタル署名で登録したデジタル証明書の登録を
削除する方法を教えてください。
>>636 (&その他多数)
いきなり複数シートをまとめる結果を出そうとしないで、やりたいことをひとつひとつ片づけていきな
使う関数は最終取引日はIF、MAXだけ、差し引き額はSUMIFのみで出せる
取引先なんて決まってるんだろうから、この分は手入力してもいいし
自動で出したければ過去ログで散々既出の「重複しないように値を抽出」する式を使ってもいい
例えば取引先ごとの最終取引日の場合、いきなり「複数シートに渡る取引先ごとの最終取引日」ではなく
シートごとに「取引先ごとの日付」を出して、その中で最終日を出し、更にシート1とシート2のどちらが大きいかを出せばいい
数式にすると=IF(B1="A社",C1,"")を必要数オートフィルでコピーすることで、「取引先ごとの日付」が出せる
そして出た結果をMAX関数に掛ければ「シート1のA社の最終取引日」だ
更に「シート1のA社の最終取引日」と「シート2のA社の最終取引日」をMAX関数に掛ければ目的の結果がでる
これをひとつの式にするとこんな風になるわけだ
┌ ┌IF(B1="A社",C1,"")
│MAX│IF(B2="A社",C2,"") シート1
MAX│ └IF(B3="A社",C3,"")
│ ┌IF(B1="A社",C1,"")
│MAX│IF(B2="A社",C2,"") シート2
└ └IF(B3="A社",C3,"")
脳内でこういう構想を作り配列数式に直すだけの能が無いのに、いきなり結果を出せる式を組もうとするから
MAXやIFなどの使うべき関数が解っていても結果に繋がらないという状態に陥ってしまう
まずは「結果を出すには何処でどういう計算をすれば良いか」というのを考えろ、この部分はExcel以前の問題だ
そして、その計算をするにはどの関数が必要か、結果をまとめるにはどういう数式を組めばいいかと順を追え
大抵の奴は「計算構想、関数式化、まとめ」を一発でやろうとするから、ひとつひとつを解く知識は合っても躓いてしまう
関数式化で躓いてここに来るなら話は分かるが、今回使う関数は「最大」とか「条件」とかで検索すれば簡単に出てくる関数だからな
と、順を追えば自己解決出来るはずの内容で質問に来る奴があまりにも多いので熱く語ってみました
643 :
636:2005/10/26(水) 16:30:01
>>642さんの言葉で解決する事ができました。
>>636さんの言うとおりで、自分の浅はかさを痛感する事もできました。
ご迷惑おかけしました。
また、自分の浅はかさを教えて下さったことに、感謝致します。
>>638さん
回答を下さってありがとうございました。
今後の作表の参考にさせて頂きます。
644 :
634:2005/10/26(水) 18:08:17
>>590のやり方だとうまくいかないんですよ
マクロを使ったやりかたはないですかね?
マクロがいいなんて
>>634には一言も書いてないし
逆に検索ワードにはワークシート関数が書いてある始末
それに
>>590で結果は出せるはずだ
ただ、B列に同じ値が有るか否かしか返さないから、結果に応じた抽出が必要
そのくらいは自分で書けるだろう
ってことで終了
おまえは相談にのれるようなレベルじゃねーな
結局わからねーってことね
自分がわからねーからって勝手に終わらすなよ
テメーみてーのみてるとマジむかつくんだよ
おやまのたいしょうさんよ
647 :
名無しさん@そうだ選挙にいこう:2005/10/26(水) 19:20:03
先日は無作法大変失礼しました。
出直して参りました。よろしくお願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 マクロ 起動
楽天証券のRSS(リアルタイムスプレッドシート)というのを
エクセルに組み込んであり、
A1セルに株価が表示されるようになっています。
A1セルの株価の値はマーケットがオープンな時間帯常に
動的に変化します。
そこでA1セルの値が例えば1000を超えたとき自作マクロを起動させたいのですが
セル中のIF式にてマクロは起動可能なのでしょうか?
また不可能な場合他の対処法はあるのでしょうか?
よろしくご教授お願い申し上げます。
648 :
602:2005/10/26(水) 19:23:43
>>624 COUNTIFってそういうときに使えるんですね。
とりあえず、その式通りに条件付き書式を設定したら、希望通りになりました。
どうもありがとうございました。
しかし、COUNTIFは数を数える関数だと思い込んでいたので、そういう方法で条件付き書式が設定できる
とは思いませんでした・・・
個数を数える関数で、どうしてそういう設定ができるのでしょうか?
頭が悪いので、理屈がよくわかりません・・・
>647
セルの値が変わるたびにマクロが発動するイベントを仕込んでおいて
一定の値以外のときは
exit
でイベントを終了させる。
まともな質問も出来ないのに、
それを返されると逆切れしちゃう子って何処でも居るよね。
アルバイトの登録用紙がxlsできました。このファイルに自分で書き込んで返信しなくてはいけないのですが
エクセルを持っていないので何かフリーのソフトでエクセルファイルにカキコミが出来るものはありませんか?
マイクロソフトのExcelViewerはホントに見るだけで書き込み出来ませんでした・・・。
>>576 Dim foo As Variant, i As Long, j As Long
For Each foo In Array("A-", "B-", "C-", "D-")
For i = 1 To 20
If WorksheetFunction.CountIf(Range("A1:A80"), foo & i) = 0 Then
j = j + 1
Cells(j, 2).Value = foo & i
End If
Next i
Next foo
>>634,
>>644 Dim Rng As Range, i As Long
Set Rng = Range(Cells(1, 2), Cells(65536, 2).End(xlUp))
For i = 1 To Cells(65536, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Rng, Cells(i, 1).Value) = 0 Then
j = j + 1
Cells(j, 3).Value = Cells(i, 1).Value
End If
Next i
656 :
名無しさん@そうだ選挙にいこう:2005/10/26(水) 23:12:08
すみません。エクセルで作った表を2ちゃんでアップしたいんですが
どうすればいいのでしょうか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】
>>656 何をしたいのかわからないが、表をレスとして書き込みたいなら
どうやったって罫線や文字色などの修飾は書き込めないから
普通に文字だけコピペすればいい
ズレはPフォント使えるエディタで調整すればいいし、
┌────────────┬─────────┐
│どうしても線を入れたければ.│文字として線を入れな│
└────────────┴─────────┘
調整する場合は
>>2にも書いてある「・ 図を書く場合、〜」に気を付けろ
ブックをアップしたいとかならスレ違いだ
ファイルそのもののアップはExcel関係ないかなPC初心者板で聞きな
658 :
名無しさん@そうだ選挙にいこう:2005/10/27(木) 01:11:16
初心者です。お願いします。
Excel 2000で住所録を作っています。
メールアドレスの列から1つ選んでクリックすると、ハイパーリンクで
Outlook Expressが立ち上がってあて先にクリックしたメールアドレス
が入るのですが、これを、メールアドレスを複数選択した時にも実現
する方法ってありますか?
複数のメールアドレスというのは、毎回任意で。
よろしくお願いします。
>>658 それはOutlook Expressの質問だな
どうすれば複数アドレスを受け取れるかを調べてきな
(自分でググるか、該当スレを探して聞くかはお好きなように)
そしてそれをExcelからやる方法が解らなかったら、それをここで聞くのはスレ違いじゃないが
どういう処理をすればOutlook Expressが複数アドレスを受け取れるかなんてのは
Excel全く関係なし
ついでに次に来るときは
>>1をきちんと読もうぜ
660 :
名無しさん@そうだ選挙にいこう:2005/10/27(木) 08:19:57
649さん
ありがとうございます。
イベントに関しては未だ未経験ですが、いろいろ調べてやってみます。
またわからない時はよろしくお願いします。
>>647 損切りですか?w RSSの値変化はCalculateイベントで拾い、適当な損切りあるいは境界
値で条件判断します。ただ一定値以上に達しても、イベントが作動し続けるので、止める為の
仕掛けが必要でしょう。プログラム自体に詳しくないのですが、ヒントになれば・・・・
テストは念入りに。
Private Sub WorkSheet_Calculate()
Dim Target As range
Dim cnt as integer
Set Target = range("A1")
If Target.Value >= 1000 Then
cnt=cnt+1
If cnt>=1 and cnt<2 then
Call "別のプロシージャ"
MsgBox ("条件に達しました")
Else
Exit Sub
End If
End If
End Sub
エクセルのVBAを使用してデータをFDに落とすシステムを作りました。
自PC(WinXP Office2003)だと上手くいくのですが、WinME,98,(Office2000)だと上手く作動しません。
内容的にはTrim関数やSpace関数、StrConv関数などが使用できなくなりました。
IF関数などは使うことができるのですが・・・。
始めはVBAのバージョンが古いのかと思いアップしたのですが上手くいきませんでした。
新規でエクセルを立ち上げVBAでTrimなどを使用すると使えるみたいなのですが既に作成した
自分のエクセルファイルではなぜか関数が使えなくなりました。
検索しても同じような症状が見あたらず困っております。一応ファイルをうpしましたのでもしよかったら見てみてください。
なお、Zipで圧縮しております。
http://douga.sakura.ne.jp/uploader2/src/up12804.zip.html
すごい丸投げ来たなwwwwwwwwwwww
>>663 エクセルファイルは参考です。違うOS、違うバージョンのオフィスで作成されたエクセルファイル(VBA含)で関数が
使用出来ない状況にあるのはどういったときがあるか知りたいのです。確かにいきなりファイルをUPしたら丸投げみたいにとられますね;w;
>>662 「Microsoft Word 11.0 Object Library」が参照設定されていますね。
これだとWord11 = Word2003がインストールされていない環境ではエラーになります。
全部は見てないので、何処でWordの機能を使ってるのか知りませんが
代替処理に切り替えるなどして「Microsoft Word 11.0 Object Library」の参照設定を外しましょう。
>665
ビンゴです。
ありがとうございました
>>hogeさん
なるほどです。。テキストファイルを出力するために参照したのですが2003じゃないと駄目なのですね(汗
それといろいろ試してみてユーザー定義関数でSpace()の代用したら上手く言ったのですが・・・TrimやStrConvなどもユーザー定義
にしてしまうとファイルサイズも大きくなってしまうので却下しました;w;
Function Space(aa as integer) as Variant
Dim a As Integer
For a=1 to aa
Space = " " & Space
Next a
End Function
668 :
名無しさん@そうだ選挙にいこう:2005/10/27(木) 17:05:39
661 さんどうもです。
後同輩がおられるとは心強い限りです。
今のところ私の場合売買ルールの検証の為のRSS+エクセルでのシステム構築を目指しています。
それに目処がつけば実践売買に移行したいと考えてます。
サンプルソースのご提示感謝いたします。イベントに関して何も知らない状態なので大変参考になりました。!
ありがとうございました。
SpaceもTrimもStrConvも、ExcelVBAの組込関数にあるんじゃないの?
Excel2000には無いんだっけ?
エクセル2000です。以下のコードを実行するとシート4のC(i)には数値が入りますが、
シート4のH(i)はなぜかすべて空白のままです。どこかに問題点はあるのでしょうか?
前半
Dim Tleft As String
Dim Tright As String
Dim j As Integer
For i = 2 To 13
Worksheets("Sheet4").Activate
Tleft = Range("D" & i).Value
Tright = Range("G" & i).Value
Worksheets("Sheet2").Activate 続きに続く
671 :
続き:2005/10/27(木) 21:09:24
続き
For j = 7 To 36
If Range("D" & j).Value = Thome Then
Worksheets("Sheet2").Range("E" & j).Copy _
Destination:=Worksheets("Sheet4").Range("C" & i)
End If
If Range("G" & j).Value = Taway Then
Worksheets("Sheet2").Range("E" & j).Copy _
Destination:=Worksheets("Sheet4").Range("H" & i)
End If
Next
Next
あ、Dim i As Integer は、ずっと上のほうにあります。
字下げして書き込んだつもりですがなぜか反映されてなくて見づらくてすいません。
671はこれでした。入れ替えます。ごめんなさい。すいません。よろしくお願いします。
続き
For j = 7 To 36
If Range("D" & j).Value = Tleft Then
Worksheets("Sheet2").Range("E" & j).Copy _
Destination:=Worksheets("Sheet4").Range("C" & i)
End If
If Range("G" & j).Value = Tright Then
Worksheets("Sheet2").Range("E" & j).Copy _
Destination:=Worksheets("Sheet4").Range("H" & i)
End If
Next
Next
> シート4のH(i)はなぜかすべて空白のままです。
If Range("G" & j).Value = Taway Then
が全てFalseだったらそりゃ空白のままだな
この条件がFalseの時は空白のままにまるようにおまえ自身がコードを書いたんだから
この条件がTrueを返すような表であれば、ちゃんとシート4のH列にも値は入るよ
それにコピー→張り付けとする必要あるの?
書式ごとコピーしたいならまだしも数値や文字などの値のみコピーしたいなら
.value = .valueでいいじゃん
Thanks !!!
うーん、表をみると i = 2 To 13のそれぞれのi のもとの、j = 7 To 36のなかで必ずTrueになるはずなんだけど・・・
なんでだろ。煮詰まってきたー。たぶんいま頭の中の血はドロドロ。
コピー→張り付け にしたのは異なるシートへのデータ貼り付けがわからなかったからです。
ブックをうpしてみれば
*(YY)< はずかしぃー
どこかうpするところありますか?
恥ずかしいから見せたくないという気持ちと
目的を達成したいという気持ちのどちらが強いかで行動を選べばいい
こっちは何が何でも解決させたいわけじゃないからうpを強制するつもりはないし
×If Range("G" & j).Value = Taway Then
○If Range("D" & j).Value = Taway Then
おまえのコードはシート4のG「大 宮、東京V、広 島、…」と
シート2のD「 勝 、、16、15、14、…」を比較してるんだから一致する場所が有るはず無いだろ
おお、ヤター !! H(i)にも数字が入った。
あそこがダメだったのか・・・
ありが億 !!!
ついでにいおまけ
カウンタはLongがいいとかRangeよりCellsがいいとかFind使うべきとか
細かいところはいろいろあるが、とりあえず別シート間の.value = .valueの一例
Dim S2 As Worksheet
Dim S4 As Worksheet
Set S2 = Worksheets("sheet2")
Set S4 = Worksheets("sheet4")
S4.Range("C2:C13,H2:H13").ClearContents
For i = 2 To 13
Thome = S4.Range("D" & i).Value
Taway = S4.Range("G" & i).Value
For j = 7 To 36
If S2.Range("D" & j).Value = Thome Then
S4.Range("C" & i).Value = S2.Range("E" & j).Value
End If
If S2.Range("D" & j).Value = Taway Then
S4.Range("H" & i).Value = S2.Range("E" & j).Value
End If
Next
Next
>>683 じっくり参考にさせてもらいます。ありがとうございます。
686 :
名無しさん@そうだ選挙にいこう:2005/10/28(金) 09:47:03
Excel2000
XP Pro
外部リンク先のファイルを開かずに更新したい。
ファイルA:データ格納、ファイルBで算出した値の表示
ファイルB:ファイルAデータを基に計算
ファイルAにてデータ入力を行った後ファイルBを起動させなければ、ファイルAに表示させている
ファイルBが算出したデータが更新されない。<当たり前だが
これをファイルA起動時に、ファイルBを起動せずに(またはバックグラウンドで起動)データの算出をさせたい。
以前「くだらない質問・・・」スレで、マイクロソフトサポートサイトに掲載されている
マクロを利用した方法のページを教えてもらったのですが、URLを失念してしまいました・・・
(ファイルAを起動すると自動的にファイルBを起動させる。バックグラウンドか否かは失念)
もし上記のページor他の方法をお解かりになる方がおりましたら、ご教示ください。
よろしくお願いいたします。
>>686 > 以前「くだらない質問・・・」スレで
だったらそこのログ読んでくればいいじゃん
ログ持ってなければにくちゃんねるとかで読めばいいし
なんで自分で出来ることをやろうとしないのかね?
馬鹿だから
選択したセル範囲の中から、最小値とその最小値が格納されているセルを求めるコードが
あったと思うのですが、本をみても載っていません。
たしか最大値の場合がMAXで、最小値の場合はMINだったと思うのですが、こういうコードは
VBAになかったでしょうか?
Saisho = MIN(A2:B13)
とすると構文エラーになります。Excel2000です。
690 :
名無しさん@そうだ選挙にいこう:2005/10/28(金) 15:00:40
>>689 Saisho = WorksheetFunction.Min(.Range("A2:B13"))
ありがとうございます
692 :
名無しさん@そうだ選挙にいこう:2005/10/28(金) 20:41:37
なんか今日は静かだね
>>687 とりあえず見つかった。
礼をいう。
最低なりに役に立つわけだ。
日本語の全角数字や文字列、英数が混ざった列があって、
そのうちの数字の合計を出したいと思います。
ASC()で半角文字に変換し、次にVARUE()で数値に変換し、
変換したものが#VALUE!エラーでないもののみをSUMIF()で合計したのですが、
元の列のほかに作業用の列が3列必要になってしまいました。
作業用の列を増やさずに関数をネストして1回で集計してしまうにはどう書けばよいのでしょうか。
>>695 自分で書いたもの(3列の作業列の式)をここに書いてみな
B1=ASC(A1)
C1=VALUE(B1)
D1=C1
=SUMIF(C1:C4,"<>#VALUE!",D1:D4)
B1=VALUE(ASC(A1))
=SUMIF(B1:B4,"<>#VALUE!",B1:B4)
B1=IF(ISNUMBER(VALUE(ASC(A1))),VALUE(ASC(A1)),"")
合計=SUM("B1:B100")
無駄に二重評価してどうするよ?
701 :
sage:2005/10/29(土) 01:58:25
時刻を入力した箇所が4文字の文字列になっています。この4文字を真中で区切って時刻と認識させるにはどうしたらよかとですか?
>>701 まさかと思うが、1時30分を入力するのに
「01:30」じゃなく「0130」とやってるとか?
違うよね?
703 :
sage:2005/10/29(土) 02:08:03
>>702 そうです。そのとおり「0130」を「01:30」にしたいんですけど・・・
でもDATAが膨大で一つずつ:をいれるのは大変なので一気に変換できませんか?
>>701 別セル表示で良ければ
=TIME(LEFT(A1,2),RIGHT(A1,2),0)
同一セルへの変換代入が良ければ、変換したい範囲を選択して
Sub hoge()
Dim Rng As Range
For Each Rng In Selection
Rng.NumberFormat = "h:mm"
Rng.Value = TimeSerial(Left(Rng.Text, 2), Right(Rng.Text, 2), 0)
Next Rng
End Sub
704さん
問題解決いたしました。
大変助かりました。有難うございます。ノシ
706 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 10:43:58
エクセルについての質問おねがいします。OS、XP、エクセル2003
一つのセルに数字を入れて、その数字が
100-290は「1」 300-490「2」 500以上「3」って表示できる関数はありますか?
よろしくお願いいたします。
>>706 条件7つまでは
>>6でいける
条件7つ以上は、どこかに対応表を作って
VLOOKUPかINDEX&MATCH
708 :
706:2005/10/29(土) 11:19:06
709 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 11:38:47
エクセルについての質問おねがいします。OS、XP、エクセル2003
(コピー先、コピー元共に)です。
USBメモリを使用してファイルのやり取りをしたのですが、
コピー元では正常に関数が実行されるのですが、
コピー先では####で表示されませんでした。(セルを広げてみても駄目でした)
別ファイルのデータを参照しているようには見えないので、
1つのファイルで動作すると思います。
何かファイルの基本設定の変更などで解消されるのでしょうか?
基本的な質問だと思うのですが返信をお願いします。
使用している関数は、以下になります。
=DATEDIF(F3,EOMONTH(TODAY(),0),"m")
F3には"2002/3/7"が入っています。
710 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 11:48:49
>>709 EOMONTHはアドインで追加しないとデフォルトの状態じゃ動かない
711 :
710:2005/10/29(土) 11:52:29
>>709 どうしてもEOMONTHを使いたいのでなければ
=DATEDIF(F3,DATE(YEAR(TODAY()),MONTH(TODAY())+1,0),"m")
これで同じ結果は得られると思います。
712 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 12:00:06
>>710&711
解決しました。どうもありがとうございました。
ヘルプ見たら、
EOMONTH
この関数を使うには、セットアップ プログラムを実行して分析ツールを組み込み、
[ツール] メニューの [アドイン] コマンドを使ってその分析ツールを登録する必要があります。
って載っているのにここで質問しているくらいだから、
どのアドインか書いてないとわからないかなと思ってね。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 歓迎
【5 検索キーワード 】 過去レスで
>>37を見つけましたが具体的なコードがわかりません
AからO(オー)までのデータが行2から行43まで全部で42行ほどあります。
データF(2桁までの整数です)の小さいほうから大きいほうへ、これらの42行をまるごと
ならべかえたいのですが、どういうコードになるんでしょうか?
VBA本を基礎応用関数編と3冊も買ったのにこういうコード表が載ってないんですよ。
買う本間違えちゃったかな? ( /_\)
717 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 17:22:52
>>716 コードもなにも、F1を選択して「昇順に並べ替え」アイコンをクリックするだけじゃね
718 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 17:28:55
やっやめろぉ!!
>>716の疑問がそんな簡単に解決するはずはないっ!!
> VBA本を基礎応用関数編と3冊も買ったのにこういうコード表が載ってないんですよ。
コード移してそのまま使えるようなものが無いのは当然だろ
だが、おまえのやりたいことに繋がることは載ってるはずだ
応用が出来ないならVBAなんて使おうとしないで手動でやれ
> 買う本間違えちゃったかな? ( /_\)
逆に本の方が「読んで貰う人間違えちゃったかな? ( /_\)」って感じだな
質の良い解説書もバカが読めば意味不明な文字の羅列にすぎない
720 :
716:2005/10/29(土) 17:31:52
>>717>>718 >>719 こんなアイコンがあったんですね。初めて知りました。ありがとん。
レスを見てF1キーを押して「昇順に並べ替え」と入力して検索をクリックしたのは内緒だよん。
721 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 17:35:24
背伸びしすぎてる感が否めない
「今日からはじめるExcel」みたいな本を買ったほうがいい
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 他ブック コピー マクロ
ブック1のシート1を開いているときA列に
ブック2のシート1のA列をコピーしたい場合どうすればいいんですか?
マクロでお願いします
723 :
695:2005/10/29(土) 18:06:25
>> 699
>> 700
#VALUE!が表示されないし、
SUMの記述が単純なので、
二重評価はけして無駄じゃないと思いました。
B1=IF(ISNUMBER(VALUE(ASC(A1))),VALUE(ASC(A1)),"")
SUM("B1:B100")
B列をなくすのは宿題にします。
でも、「約20」とか「たぶん50ぐらい」と書いてあるのは、、orz
724 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 18:11:13
これってASC関数使う意味あるの?
VALUE関数は全角数字も数値として評価出来るでしょ
ASC関数使わないとならない数字って何?
726 :
695:2005/10/29(土) 19:42:45
あ、ほんとうですね。必要ないです。
VALUEは数値を表す全角文字も数値として評価できますね。
B1=IF(ISNUMBER(VALUE(A1)),VALUE(A1),"")
先にASC()使ったので、気がつきませんでした。
1320
とかでも評価しますね。
727 :
695:2005/10/29(土) 20:02:19
>>724 すみません。
だめというかなんというか、触ったことありません。
良い機会なので勉強します。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
='[10月.xls]1日'!$O$17という関数で
1日という名前のシートから数値をもってきて
ドラッグかコピーなどで
='[10月.xls]2日'!$O$17(2日はシート名) ='[10月.xls]3日'!$O$17 ・・・
と隣のセルにシート名を順番に変えて打ち込めないでしょうか?
意味わかりづらいと思いますがよろしくお願いします。
エクセル勉強しはじめの初心者です。
よろしくお願いします。
A1のセルに1月1日、B2のセルにに2月15日と書いてあり、
経過日数をC3のセルに計算するのですが、46日と出したいのに、
1月15日と出てしまいます。(=B1-A1と計算するよう指定あり)
これを46、又は46日と出すようにするにはどうすればいいのでしょうか?
$'[10月.xls]1日'!$O$17 ・・・いや無理だろ。とか思ったら
=(INDIRECT(A2))
Sheet2!A1
Excelって凄い。="'[10月.xls]"&column()&"日'!$O$17"とかをどっかに
ワークシートを切り替えるショートカットてありますか?
Ctrl+PgUp/PgDn
733 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 21:10:10
>>722 値のみなら
ActiveSheet.Columns("A").Value = Workbooks("Book2.xls").Worksheets("sheet1").Columns("A").Value
書式も含めてなら
Workbooks("Book2.xls").Worksheets("sheet1").Columns("A").Copy ActiveSheet.Columns("A")
>>723 B列使わず1セルで出すなら配列数式使えば出来ますよ。(今のIF式をSUM関数の中に入れるだけ
「約20」、「たぶん50ぐらい」を「20」、「50」として計算するのはVBAで可能です。
必要ならコード書きますよ。
>>728,
>>730 式を入れる位置がA列からとは限らないので、COLUMN()ではなくCOLUMN(A1)の方が良いですね。
COLUMN()だと列位置との連動はしますが、返す値は数式を入れた位置に影響されます。
COLUMN(A1)なら、どの位置に入れようと最初の式が「1日」になります。
ついでに、文字列として返した式を、「コピー > 値のみ張り付け > 置換"="→"="」とすれば
INDIRECT関数を使わなくても、通常の式として動作します。
735 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 21:21:27
>>729 とりあえずセル番地がむちゃくちゃなのを何とかしろ。話はそれからだ。
あと出したいのは46日でいいんだな?本当に。
736 :
728:2005/10/29(土) 21:45:13
>>730さん
できればもう少し詳しくおねがいできませんか?
初心者ですいません・・・
737 :
728:2005/10/29(土) 21:49:14
734さん見落としてました。考えてみます。
730さん734さんありがとうございました。
738 :
名無しさん@そうだ選挙にいこう:2005/10/29(土) 23:23:47
すいません。
=D27+G27+E27
とか言う式をオートフィルで縦に連続に適用させてるのですが。
これらの式の内、ひとつのセルに特定の数字、又はセル未記入がある場合
(例えばD37とかD12とかがセル未記入の場合)
その列の式の結果を出さないというような事はできるのでしょうか?
すいません、解かりにくいでしょうか。
>>738 >>6読め
>>6で解らなければヘルプ読め
ヘルプでも解らなければググれ
3日検索して解らなかったらまた聞きに来い
740 :
名無しさん@そうだ選挙にいこう:2005/10/30(日) 00:42:35
802 名前:名無しさん@お腹いっぱい。[] 投稿日:2005/10/29(土) 23:08:59 ID:kAEx2Tw70
Excel2002で、表に次々と写真を貼り付けると、最初は鮮明なのにしばらくすると
ぼやけてしまいます。Microsoftの技術情報を調べたところ、「そういう仕様になっている」
とぬけぬけと書いてある。何のために?そして「ぼやけるのがいやならWindows メタファイル
で貼り付けろ」だと…。じゃ、2000で作成した写真がしこたま貼り付いている表を
全部作り直せってか?!おまけに、古いデジカメ写真はピンクや黄色に色化けして
使い物にならない(WordもExcelも)。撮り直すなんて不可能。
OfficeXPがプリインストールされていたPCなんだけれど、結局、前のPCで使ってた
Office2000を入れなおした。2003では、どうなんだろうか。
741 :
名無しさん@そうだ選挙にいこう:2005/10/30(日) 03:10:04
Excelでt検定をやりたいんですけど、どうすれば良いのでしょうか?
>>741 分析ツール”t検定”でいくつかの方法が選べるようですが。
アドインして入れてください。
743 :
名無しさん@そうだ選挙にいこう:2005/10/30(日) 13:09:25
VBAでデザインモードに移行するコマンドはありますか?
>>744 デザインモードボタンの自動押しで良ければこんな感じで。
CommandBars("Control Toolbox").Controls("デザイン モード(&D)").Execute
すいません。
エクセルのIF関数をオートフィルしてる状態において
その欄が空白になる場合に、その欄を空白にせずに次に数値や文字が記入される場所をそこに繰り上げるって事は可能でしょうか?
>>746 意味不明
具体例を図を使って書いてみろ
それと脳内完結でものを書かないように
第三者にも伝わる用語と解説でどうぞ
ついでに
>>1もよく読め
a b
1 1 @IF(a1>0,1,"")←1
2 0 @IF(a2>0,1,"")←空白になる
3 1 @IF(a3>0,1,"")←1
4 0 @IF(a4>0,1,"")←空白になる
5 0 @IF(a5>0,1,"")←空白になる
6 1 @IF(a6>0,1,"")←1
こうやると空白が間にできてカッコ悪いじゃないですか。
だから
a b
1 1 @IF(a1>0,1,"")←1
2 0 @IF(a3>0,1,"")←1
3 1 @IF(a6>0,1,"")←1
4 0
5 0
6 1
こういう風に空白を埋めて、上に詰めて表示させることってできますか?
途中の空白が埋まる条件が満たされれば、その時はそれ等の間に新しく文字が出てくるという感じで・・・
a b
1 1 @IF(a1>0,1,"")←1
2 0 @IF(a2>0,1,"")←空白になる
3 1 @IF(a3>0,1,"")←1
4 0 @IF(a4>0,1,"")←空白になる
5 0 @IF(a5>0,1,"")←空白になる
6 1 @IF(a6>0,1,"")←1
a b
1 1 @IF(a1>0,1,"")←1
2 0 @IF(a3>0,1,"")←1
3 1 @IF(a6>0,1,"")←1
4 0
5 0
6 1
すいません、コレで補完してください
>>748 数式と関数の意味を根本的に理解してないような気がするのだが。
たしかに
まあ、どっちみちそういう式を作ることは出来るけど
オートフィルでそういう式が出来上がるような設定は無い
今回の質問はオートフィルで出来るかなので
"そういう式"については必要なら自分で調べな
これまたスゴイ勘違い野郎が居たもんだなw
>>751 どのような方法を使えば上記のような事が可能なのでしょうか・・・
ぜひ、お願いします!
1,3,6の数列をAutoFillが理解しない場合は、(確認してないがw)
自分で1,3,6のすうれつをつくるしかない。 で なにしたいの?w
755 :
名無しさん@そうだ選挙にいこう:2005/10/31(月) 00:37:21
ある条件を満たさないセルのみを表したいなら「フィルター、条件(この場合0でない)」の方が・・・・
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
仕事で急遽VBAが必要になりテキスト片手に勉強中です。
調べてもわからなかった事を質問させてください。
・ユーザーフォームをつくりました。
「全消去ボタン」をつくり押すとフォーム内のテキストボックス内
の入力事項がクリアできるようにしたい。
・ユーザーフォーム内の「リストボックス」で選択事項によってフォーム
内の「テキストボックス」に関連項目を自動入力したい。
・「リストボックス」で選択事項をワークシートに表示したい。(基本
なのにうまくいかないんです。。。)
一気に質問してすいませんがわかるかたよろしくお願いします。
>>756 > 「全消去ボタン」をつくり押すとフォーム内のテキストボックス内
> の入力事項がクリアできるようにしたい。
任意のテキストボックスの内容をクリアするなら
Private Sub CommandButton1_Click()
TextBox1.Text = ""
フォーム内の全テキストボックスが対象なら
Dim Obj As Control
For Each Obj In Me.Controls
If TypeName(Obj) = "TextBox" Then Obj.Text = ""
Next Obj
> ・ユーザーフォーム内の「リストボックス」で選択事項によってフォーム
> 内の「テキストボックス」に関連項目を自動入力したい。
「関連項目」という表現が曖昧なので、何をどうしたいのかわかりませんが
単純にリストボックスで選択した文字列をテキストボックスに代入したいなら
Private Sub ListBox1_Click()
TextBox1.Text = ListBox1.Text
選択項目に連動して、いくつかのテキストボックスに任意の文字列を代入したいなら
方法は幾通りもあり、テキストボックスの数やリストの項目数、
連動させるデータの置き場所(コード上のみでやるのか、ワークシートを使うのか、外部ファイルを使うのか、など)、
その他いろんな要因でどのやり方が適してるか変わってくるので今書かれている情報だけでは何とも言えません。
> ・「リストボックス」で選択事項をワークシートに表示したい。
Private Sub ListBox1_Click()
ActiveSheet.Range("A1").Value = ListBox1.Text
758 :
695:2005/10/31(月) 11:41:56
>>734 {=SUM(IF(ISNUMBER(VALUE(A1:A100)),VALUE(A1:A100),""))}
という上記の配列数式で作業用の行を作成する必要がなくなりました。
数式の確定時にCtrl+Shift+Enterで{}を自動入力させるのがコツなんですね。
この式はドラッグして式を相対コピーできるしので大変便利です。
「約20」「たぶん50ぐらい」は、
VBAで書けるらしいことがわかっただけでもありがたいです。まずは自分で書いてみます。
759 :
名無しさん@そうだ選挙にいこう:2005/10/31(月) 11:51:13
やぁやぁ、エクセル1級の僕がきましたよ
760 :
名無しさん@そうだ選挙にいこう:2005/10/31(月) 14:01:56
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 使えない
【4 VBAでの回答の可否】 可
【5 検索キーワード 】
エクセルでシートの編集は可能なままで、
並べ替えのみを禁止したいのですが可能でしょうか?
自分以外の人がそのファイルを使うときに並べ替えのみ
出来ないようにしたいんです。
>>760 シートの保護
オプションをよーく見ろ
編集は可能な状態で並べ替えを禁止にするオプションがあるから
>>761 おまいはせっかく760がテンプレ使ってんだから、バージョンまで
よーく確認しろ。その機能は2002からで2000にはない。
>>760 ということで、2000ではたぶん無理です。
他には思いつかない。
Ctrl+A等で全てのセルを選択
書式→セル→保護→ロックを解除
ツール→保護→シートの保護
でできるかも
すいません、ロータスなのですが、ぜひご教授お願いします!
今日、白紙のワークブックを新しく作成したのですが、
なんと、枠が無い!
枠というか、セルを区切る線みたいなのが無くて、本当に白紙になってるんです。
どうやっても解決方法がわかりません・・・・
766 :
名無しさん@そうだ選挙にいこう:2005/10/31(月) 16:15:06
767 :
760:2005/10/31(月) 19:50:20
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 使えない
【4 VBAでの回答の可否】 可
【5 検索キーワード 】
回答下さった皆さん、どうもありがとうございます。
もう一つ教えて頂きたいのですが、
エクセルで、セルに入力してる時に
Alt+Enterでセル内改行を使って入力すると
自動的に行の高さが変更されるのですが、
これを変更せずに固定しておく方法ってありますか?
セルの大きさ以上の文字列は見えなくなってもいいので
改行しても行列の大きさを変えずに入力したいので。
よろしくお願い致します。
768 :
名無しさん@そうだ選挙にいこう:2005/10/31(月) 19:57:41
セル内改行って2行以上にする為の操作じゃ?w
セル書式設定の「折り返して全体を表示する」のチェックをはずすぐらいしか思いつきません。
>>767 書式→行→高さ 好みの高さに指定
で行高を固定にしてしまえば、折り返しをいれても高さは変わらないと思うけど。
>>767 入力したデータに応じて行の高さが自動的に変わるのは、
初期状態のままのセルだけ。
一度でも行の高さをユーザーが変更すれば(いや、変更しなくても
右クリック→行の高さなどで変更のための操作を行えば)、
自動的に変わることはなくなる。
つまり769さんの方法でOK
771 :
名無しさん@そうだ選挙にいこう:2005/10/31(月) 21:37:05
Excel2000です。
A列を探して "10月31日"を見つけたとします。
このとき、この"10月31日" があるA列の行番号を得ることはできるでしょうか?
たとえば、A123のセルに"10月31日" があったら、"10月31日"に到達したつぎに行番号の123を
求めたいのです。
よろしくお願いします。
>>773 > ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
775 :
773:2005/10/31(月) 22:48:13
失礼しました。
Win2000+Excel2000+VBAはい+VBA可 です。
>>773 10月31日は日付型?文字列?
日付なら、
=MATCH(DATEVALUE("10月31日"),A:A,0)
文字列なら、
=MATCH("10月31日",A:A,0)
777 :
773:2005/10/31(月) 23:17:25
ありがとうございます。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A .B ..C .D
1 あ か さ た
2 い か さ ち
3 あ か .そ つ ←
4 お こ .さ て
5 あ か .そ つ ←
6 お こ .さ て
AからDへ「あかそつ」という組み合わせとなっている行がいくつあるかカウントしたいのですが、
どうすればいいでしょうか?
初心者でネストに不慣れなもので、どうかご教授願いたいです。
>>778 E1に =A1&B1&C1&D1 と入力してずっと下へコピー。
後は =COUNTIF(E:E,"あかそつ")
>>779 できました。
素早い回答ありがとうございます。
どうやら複雑に考え過ぎてたみたいです・・・
781 :
760/767:2005/11/01(火) 12:09:16
助かりました。皆さんどうも有難うございました。
782 :
名無しさん@そうだ選挙にいこう:2005/11/01(火) 18:37:05
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 お願いします!
【5 検索キーワード 】
仕事で困っています、助けてください。
マクロを使ってフィルタ表示したデータを
別のシートにコピー&ペーストさせているのですが、
なぜか入力規則が消えてしまいます。
別のスレで聞いたところエクセル2000では入力規則は
マクロでは動作しない(?)ような事をいわれました。
そこで、代替え案として、ペースト後のデータ(表)のうち、
条件に合うセルに入力規則を設定するという風にしたいのですが、
複数のセルをまとめて処理する方法がわかりません。
下記に今入力しているマクロを示しますのでよろしくお願いします。
783 :
名無しさん@そうだ選挙にいこう:2005/11/01(火) 18:37:51
Sub 入力時にメッセージを表示する()
IF Range("W8:W2000").Select <= "○○○"
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "注意!"
.ErrorTitle = ""
.InputMessage = "○○○・・・" 'ここにはメッセージを入力してます
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
End Sub
以上のような感じで、W列の8行目から2000行目のセルで
"○○○"という文字列を含むセルのみに入力規則を設定して
入力時(セルを選択したとき)にメッセージを表示させたいんです。
どうすればうまくいくのでしょうか?
784 :
名無しさん@そうだ選挙にいこう:2005/11/02(水) 07:51:02
縦軸の加算(A1セルからA3セルを足し算)は出来るものの、
横軸の計算で何パーセントかにする(A1セルの100円をB1セルへ30%引かせた数値を出させたい)計算が出来ません。
で、その横軸の計算をまとめて実行させる(A1〜A3セルの数値をそれぞれ15%の掛け率率で計算させ、B1〜B3セルに出させる)
方法はありますか?
意味不明かもしれませんが、お願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】
サイコロの目の偏差を出したいのですが、ある程度サイコロの個数が増えてくると行数がさっぱり足りません。
現在は
1〜6を1回ずつ繰り返す列、
36回ずつ繰り返す列、
216回ずつ繰り返す列……
と言うように並べ、それらを全て足して一行に一つずつ出目を出して偏差を取っています。
サイコロが多くなった時にも対応できるよう、もっとコンパクトにまとまらないものでしょうか。
>>784 確かに意味不明ですね。掛け率が30%だったり15%だったりw
後半部だけ信用するなら、単にB1セルに
=A1*(1-0.15)
と入力し、それをB3セルにまでコピーすりゃいいんじゃない?
マルチにマジレスするなよ
>>785 サイコロの目の偏差って何?
実際に振ってみて、その出目に偏りがあるかをみるってこと?
> 1〜6を1回ずつ繰り返す列、
> 36回ずつ繰り返す列、
> 216回ずつ繰り返す列……
> と言うように並べ、それらを全て足して一行に一つずつ出目を出して偏差を取っています。
これ、何をしたいのかよく分からないのですが。
789 :
名無しさん@そうだ選挙にいこう:2005/11/02(水) 12:48:26
>>785 65536行で足りないってことでしょうか?
FREQUENCYを使って偏差を出すんなら、複数列でも可能ですよ
>>782-783 先に範囲を選択して、「"○○○"という文字列を含むセルのみに入力規則を設定」ってのは無理じゃないか?
Validationには「〜を含むセルのみ」っていうような機能は無いでしょ
まず"○○○"を含むかどうかを判定して選択し、それから選択全セルに入力規則の設定だな
791 :
名無しさん@そうだ選挙にいこう:2005/11/02(水) 13:46:50
無い
793 :
名無しさん@そうだ選挙にいこう:2005/11/02(水) 16:27:41
すみません、質問させて頂きます。
【1 OSの種類 】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 非表示モジュール、コンパイルエラー
Dist Mon Auto Exec New
上記の環境ですが、Excelのデータを開くたびに、
「非表示モジュールDist Mon内でコンパイルエラーが発生しました。」
と出て、閉じる時には
「非表示モジュールAuto Exec New内でコンパイルエラーが発生しました。」
と出ます。VBAでのエラーだと思うのですが、ヘルプを見ても意味が分からず
こちらに書き込みさせて頂きました。
ご回答、宜しくお願い致します。
VBAのエラーでVBAわからないなら、そのブックをうpするか、
>>2の
> ・ バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
に従ってMSに聞くかだな
795 :
793:2005/11/02(水) 16:44:09
了解しました。
もう一度、再インストールするなどしてみます。
ブック毎では無く、Excelのデータすべてにエラーが出るので
データ自体がおかしいのかも知れません。
ありがとうございました。
へんなアドインとかが臭いな。馬鹿が作ったアドインソフト系入れて、削除するとそんな
感じになりやすい。
きれいにアンインストールして、再インストールしなおせばたぶん大丈夫なんじゃない?
797 :
質問:2005/11/02(水) 19:38:24
97のVBAのFilesearchで、パス指定している(lookin)のに全フォルダを探しています
僕とエクセルのどっちが悪いの?
さあ?
ディレクトリ構造と、実際に使ったコードと、返った結果を
具体的に書いてくれないとなんとも
それと
>>1をちゃんと読もうね
799 :
797:2005/11/02(水) 20:17:37
ごめんなさい。win95でコードがこんなかんじです。
Sub a()
Set fs = Application.FileSearch
With fs
.LookIn = "C:\フォルダ"
.TextOrProperty = "3"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & _
" 個のファイルが見つかりました。"
Else
MsgBox "検索条件を満たすファイルはありません。"
End If
End With
End Sub
回答要らないらしい
A B C
4月1日 Fri \125,000
4月2日 Sat \10,500
4月3日 Sun \33,333
4月4日 Mon
4月5日 Tue
: :
上のような状態で曜日毎の平均を出したいのですが、
どうすればよいでしょうか?
仮に金曜日の平均を出す場合、
SUMIF( )で金曜日の合計を出す方法はわかりますが、
C列に入力があるセルの内、金曜日だけのセルの数を数える方法がわかりません。
それとも適切な関数が他にありますでしょうか?
802 :
797:2005/11/02(水) 20:49:57
>>800 検索キーワードは、.excel97 FileSearch lookin バグ でした。
>>1に関して、他に不備な点はなさそうですけど・・わかりません
>>801 =SUMIF($B$1:$B$100,"FRI",$C$1:$C$100)
805 :
804:2005/11/02(水) 21:02:41
すまん、合計じゃなくて「平均」だったな。
間違った。
> 金曜日だけのセルの数を数える方法がわかりません。
COUNTIF
807 :
THEうんこ:2005/11/02(水) 21:08:16
【1 OSの種類 .】 Windows
【2 Excelのバージョン 】 Excel
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ekuseru
勝手に数式が書き変わってしまいます。
セルA1に「=B1」という数式を入力し、セルB1を削除。
すると、A1の数式「=B1」が「=#REF!」へと勝手に書き変わってしまいます。
セルB1を削除してもセルA1の数式が勝手に書き変わらないようにするにはどうすればいいですか?
808 :
797:2005/11/02(水) 21:10:03
>>803 構造は C:\フォルダ と同じ中身が C:\Program Files の下にあります。
返った結果は、C:\フォルダ の中身を大きくオーバーしてます。
おそらく、C: 以下の同条件のものを探していると思われます
>>807 INDIRECT
つーか
> 【1 OSの種類 .】 Windows
> 【2 Excelのバージョン 】 Excel
って何よ?
> 【5 検索キーワード 】 ekuseru
って何よ?
>>808 「具体的」ってどういう意味だかわかってる?
810 :
804:2005/11/02(水) 21:14:34
>>801 これ。
=SUMIF($B$1:$B$100,"FRI",$C$1:$C$100)/COUNTIF($B$1:$B$100,"FRI")
812 :
797:2005/11/02(水) 21:18:48
具体的ですか・・目的のことでしょうか
条件にあったファイルを探したいのですけど・・
>>808 おまいさんが、どう判断したかは聞きたくない。
実際C:\フォルダにはファイルいくつある?サブフォルダ内も含めるといくつだ?
C:\全体でいくつある?
MsgBoxは何を吐いた?
.TextOrProperty = "3"
こんな設定したら、腐るほど、というか全ファイルhitすると思うが。
.NewSearchしてないが、サブフォルダの中まで検索してないか?
814 :
THEうんこ:2005/11/02(水) 21:33:35
>>809 おお出来た。
「=B1」の代わりに「=INDIRECT("B1")」を使ったら出来た。
ネ申様はじめまして。
よろしくお願いいたします。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 意味不明orz
【4 VBAでの回答の可否】意味不明orz
FUJITUのパソコンを買ったんですが最初からエクセル・ワードが入ってました。
リカバリして再度インストールしたのですが、エクセルの書体の数が少ないのですが・・・
これは一体どういう事でしょうか??
認証登録もすませました。
神様よろしくお願いします。
> ネ申様はじめまして。
意味不明orz
ネ 申 って何だよw
> エクセルの書体の数が少ないのですが・・・
意味不明orz
書体って何だよ?
> これは一体どういう事でしょうか??
意味不明orz
どういう状態なのかこっちが知りてーw
> 認証登録もすませました。
意味不明orz
だから何?
つーか、俺等は標準Excelの初期状態はわかっても、メーカーが独自に拡張した部分なんてわからない
普通にインストールして何か足りないと言われても、Excelには標準インストールでは選択されてない機能があるから
カスタムインストールを見てみろってくらいしか言えない
それ以上はメーカーに聞け
817 :
815:2005/11/02(水) 22:14:38
>>816ネ申様
ご回答ありがとうございます。
書体というのは・・・・ゴシックや明朝といった字の形式の事です・・・・・
816ネ申様にお聞きしたいのですが「ARP勘亭流H」や「正調祥南行書体」
は、はいっておられますか??
>>メーカーが独自に拡張した部分なんてわからない
勝手にフジツは書体を増やしたのですか??
お手数ですが神様よろしくお願いします。
あの書体がないと私は生きていけません。
818 :
たまりん:2005/11/02(水) 22:21:30
【1 OSの種類.】 WindowsXP
【2 Excelのバージョン】 Excel2002
【3 VBAが使えるか.】 いいえ
【4 VBAでの回答の可否】可
保存時のメッセージに、「ごくろうさまでした」と表示できませんか?
>>817 816では無いけど、うちのPCに「ARP勘亭流H」や「正調祥南行書体」は入っていない。
ショップブランドのやつだけどね。だからそれはメーカーが入れたのか、例えば年賀状印刷のソフトが
入れたのか何処が入れたのか知らんけど、少なくとも標準ではない。
>>817 これ以上はスレ違いになるけど、付属してたCD全部確認してみ。
そのフォントが見つかるかもしれない。
>>818 つ Workbook_BeforeClose
822 :
815:2005/11/02(水) 22:34:03
>>819神様
>>820神様
ありがとうございます。
あなた方のような優しい方と出会えて
生きてて良かったと心から思っております。
わかりました。
では色々と検討してみます。
本当にありがとうございました。
これから寒くなりますけどどうかオカラダだけは
おきをつけてください。
それでは失礼いたします。
823 :
797:2005/11/02(水) 22:36:35
>>813 結果の表示が
C:\foldとC:\Program Filesののファイル数の合計になります
Sub a()
With Application.FileSearch
.NewSearch
.LookIn = "C:\fold"
.FileName = "*.txt"
.TextOrProperty = "3"
.SearchSubFolders = False
If .Execute > 0 Then
MsgBox .FoundFiles.Count
End If
End With
End Sub
>>823 うちではそれで想定通りの結果が返る(フォルダパスのみ書き換え)
となると不都合ってことになるから
>>2 > ・ バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
だな
825 :
797:2005/11/02(水) 22:52:49
ありがとう。
826 :
801:2005/11/02(水) 23:00:13
>>810 回答、ありがとうございます。
ですが、私の説明不足でした。
C列が未入力の行もあるので、その場合は入力済みの金曜のみで平均を出したいのです。
つまりB列は Fri で、C列は空白ではないセル(行)の数で割りたいのです。
その方法がわからない上に、新たな不安が起こりました。
仮に数えられるとして、1週目に0を0で割る事になります。
1週目は0または何も表示されないようにしたいです。
なにか良い方法はありますでしょうか?
>>826 >>6と配列数式で問題解決
おまえは
>>1に書いてある必須情報すら書いてないんだから
数式は自分で書けよ
828 :
791:2005/11/02(水) 23:58:49
>>792 サンクス。やっぱり無いか..
EXCEL自体が誤動作するくらいだからなあ
あれば自分で防止するよな。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 条件付き書式 罫線 太さ
条件付き書式の罫線スタイルについてお尋ねします。
「書式」-「セル」から選べるような太い実線を設定したいのですが、
条件付き書式では選べません。(実線はあるのですが太さが1種類しかありません)
太い実線を設定することはできないのでしょうか。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
Excel2000にてVBAでコードを書いてて、このBOOKを保存→終了→起動とやった所、
二度と開かなくなりました。
「問題が発生したため、Microsoft Excel for Windows を終了します。
ご不便をおかけして申し訳ありません。」
これが毎回出ます。
VBAコードだけでもどうしてもサルベージしたいんですが、何か案はありますでしょうか?
C:\Documents and Settings\SystemDev\Application Data\Microsoft\Excel\の
中のファイルを消す方法は試しましたが、症状変わらずでした。
また、Excel自体は単独で開けます、そのBookだけがエラーで落ちます。
他のユーザ-及び他PCでも開けませんでした
宜しくお願いします
>>829 > 太い実線を設定することはできないのでしょうか。
条件付き書式では出来ない
VBA可ならVBAで条件付き書式のようなもの作れば何とでもなるけど
>>493 >>498 >>509あたりを参考に
>>830 > ・ バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
なんかExcel関係なく、たまたまHDDやメモリの不都合でファイルが破損しただけのような気もするけど
832 :
名無しさん@そうだ選挙にいこう:2005/11/03(木) 10:25:23
【1 OSの種類 .】 Windows x-p
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 難しい
【4 VBAでの回答の可否】 他に方法が無いならば可
事務書類(A4サイズ用)をエクセルで作成しました。
現在セルの幅が2で横幅は約40セルで、セルの結合をさせながらレイアウトしました。
ちょうど印刷に良い良いサイズで出来たのですが、
都合により一行のみセルを細分化(120位に)する必要があります。
その他の行も横120セルになっても良いのですが、
レイアウトや計算式を狂わせないで一行のみ細分化された状態に出来るでしょうか?
わかりにくい説明で申し訳ないです。
グラフ使え
835 :
832:2005/11/03(木) 10:52:15
>833様、
辛辣な御回答、恐縮です。
計算式や他のシートのデータ反映等、
ワードでは対応出来そうに無かった為、エクセル使用としました。
全てのセル幅を細分化して、
細分化の必要の無い部分は再度、元のレイアウトになるように
セル結合に次ぐセル結合をすれば可能かとは思うのですが、
何種類も該当書類があり、莫大な労力がかかります。
何とかレイアウトを保護しながら細分化出来ないでしょうか?
だからその"レイアウト"という概念がExcelには無いんだって
幅10のセルを10個結合したのと幅100のセルで、印刷される幅も違うし
全ては行*列のアドレスであり、ワープロのような位置概念が無い
複雑な計算と、細かなレイアウトを必要とする場合は
WordにExcelのオブジェクトをぶち込むのが常套手段
837 :
832:2005/11/03(木) 11:31:11
>836様、迅速な回答有難うございます。
レイアウトにこだわるというか、
一律でセル幅を小さくすると、
セルの幅が狭くなった物を一つずつ結合作業するのが大変なのです。
手作業でボツボツやれば可能な事なのですが、
何か効率の良い方法が有ればと思い質問させていただきました。
ワードとの連携は、
すでに書類をエクセルで作ってしまっており、
移行するにも作りなおしとなりますよね?
それまた莫大な労力が・・・。
困ったことです・・・。
838 :
名無しさん@そうだ選挙にいこう:2005/11/03(木) 11:40:01
>832
>莫大な労力
・・・・?
ただ面倒なだけなんじゃないの、
もともとの設計がクソなんだから
後々の使い勝手を考えれば、
今作り直した方がいいんじゃないの。
プログラミングだと、初心者の書いたコードは例えバグが無くても
見づらく変更修正もしづらい
そういう場合、見づらい使いづらいコードを効率よく編集する方法を模索するより
見やすく扱いやすいコードを書く方法を模索するのが基本
根本を解決しなくちゃ、いつか行き詰まるからな
今後も変更の度に莫大な労力を使うよりは
今一度だけ莫大な労力を使って、修正の加えやすいものに作り直す方がいい
どんどん傷口広げているようなもんだしな。早めに治さないと。
>>829 ある条件の時罫線を太くしたいということならば、逆に
最初から太い罫線にしておいて、ある条件ではないとき
細い罫線にするというようにしておけばいいのでは?
842 :
832:2005/11/03(木) 15:32:38
色々と御回答頂き、有難うございます。
効率良くは出来ない旨、理解いたしました。
現状の物を使いながら、出来る範囲で再製作致します。
843 :
829:2005/11/03(木) 15:57:48
>>831,841
回答ありがとうございます。
VBは勉強中なので、とりあえず
>>841さんの方法で対処してみようと思います。
汚いソースにも理由はあるだろうし、
時間に余裕のある時に参考資料として
インスパイヤしてしまうのが吉だな
ソースに酒飲ませてオリジナルキャラクタとして売り出したら大儲けできますか?
セルにフルパスがあって、以下のようにパラメータに渡すことができません
path_1 = Cells(1, 1).Value
FSO.MoveFile path_1, "c:\A\"
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 上付き文字
10の-3乗(-3は上付き文字)とかって、単体では表示出来ないのでしょうか?
10月3日とか、38768とか、訳のわからん表示が出ます。
847です、解決しました。
>>848 違います。あっちでスレ違いって事に気付いて、こっちに質問し直すまでの間にあっちで回答されたのです。
851 :
846:2005/11/03(木) 21:00:58
【1 OSの種類 .】 Windows 95
【2 Excelのバージョン 】 Excel 97
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 movefile
>>846をお願いします
> パラメータに渡すことができません
で、何?
「パラメータに渡すことができません」という根拠はどこから来てるの?
単にエラーが出てるだけなら、どの位置でどういうエラーが出てるか書け
つーかFileSystemObjectは使える環境なの?
Win95では初期状態では使えないよね
その辺からして解ってないならExcel関係ないからスレ違い
853 :
846:2005/11/03(木) 22:16:38
すみません。勘違いでした。
> FSO.MoveFile path_1, "c:\A\"
で、With ステートメントを使用すると、解決しました。
そんなばかな
855 :
846:2005/11/03(木) 23:01:09
そのとおり。解放しつづけミスでした。ごめん
856 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 00:19:19
>>10 「オートコレクトで..を:に置き換える」ように設定してもユーザーフォームの
テキストボックスでは無効です。
ユーザーフォームのテキストボックスで同様の動作を実現するにはどうすれば
よろしいでしょう?
>>856 必要なタイミングで置換すればいいじゃん
ユーザーフォームのテキストボックスの文字列は
シート上のものと違ってそのまま残ることはないので自動置換する必要は無い
テキストボックスの文字列が必要になったときに、テキストボックスにアクセスするだけなんだから
そのタイミングでReplaceしてやれば済むこと
どうしても入力と同時に置換したければChangeイベントでReplaceすればいい
858 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 00:46:44
>ユーザーフォームのテキストボックスの文字列は
>シート上のものと違ってそのまま残ることはないので自動置換する必要は無い
セルに入力する場合と操作性の平仄を取りたいという事です。
>テキストボックスの文字列が必要になったときに、テキストボックスにアクセスするだけなんだから
>そのタイミングでReplaceしてやれば済むこと
具体的にはこういう事です。
操作性の平仄を取るという事は、キャラクタを入力するや否や変換したいのです。
>>858 > どうしても入力と同時に置換したければChangeイベントでReplaceすればいい
860 :
http://tinyurl.com/8lkez:2005/11/04(金) 01:00:43
861 :
http://u-go.to/1tuiteru:2005/11/04(金) 01:02:15
ダメだやっぱり貼れないね偶然だったのか
862 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 01:05:21
VBAマスターしようと思ってはや2〜3年 基本覚えて一ヶ月しないの繰り返しで全然だめだ_ト ̄|○
863 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 01:23:44
>>859 全然通じてない。
Excel使った事ありますか?
>>863 ユーザーフォーム使ったこと有りますか?
865 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 01:32:29
きっとこの子はコントロールのイベントすら解ってないんだろう。
> ・ 2回目以降の質問では名前欄に初回質問の番号を入れよう。
も
> ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
も無視してるし、情報も曖昧だし。
866 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 01:42:22
>>864 >ユーザーフォーム使ったこと有りますか?
バカか。
> どうしても入力と同時に置換したければChangeイベントでReplaceすればいい
↑これがユーザーフォームを使った事のある人間の発言か?
なんにも知らないじゃないか。
867 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 01:44:31
やっぱりか。
TextBoxのChangeイベントすら知らないんだなw
Changeイベントと言われるとブックやシートのイベントしか思いつかないのか?
無知すぎて話しにならんな
無知なりに素直ならまだ救いようもあるけど
869 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 02:26:46
楽しそうに荒れているところ、お邪魔させていただきます。
【1 OSの種類 .】 ういんどうずえっくすぴぃ
【2 Excelのバージョン 】 えくせるにぃまるまるさん
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 いろいろ
↓のようなものを延々と手入力してて疲れたのですけど、
手入力せずに簡単入力する方法ないすか?
セルA1に数式【=indirect("B1")】を入力
セルA2に数式【=indirect("B2")】を入力
セルA3に数式【=indirect("B3")】を入力
・・・(延々と続く)
ところで、セルA1の数式【=indirect("B1")】をセルA2やA3にコピーしていくと、
コピーされたものは全部【=indirect("B1")】になってしまい巧くいきませんでした。
870 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 02:30:04
>>867 KeyPress と SendKey の組み合わせの方が Replaceよりきれいだな。
条件によってはな
VBからCOMアドイン形式で
Excelいじってるんですが、1つだけ解らないことがあります
Sheet.Shapes.AddFormControl(xlCheckBox, 55, 11, 38, 13)
これで追加したチェックボックスオブジェクトの名前が勝手にチェック1とか
着きますがこのチェック1という名前不要なので””にしたいのですがどの
プロパティを参照すればいいのでしょうか?
873 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 13:08:52
エクセルのセルへの記号入力ですがやはりIMEやATOKのクリックパッドを使うのが賢明でしょうか?
記号ならそれでいいのでしょうが、自分だけが使う定型文入力の場合は?
もしかするとエクセル自身に?HTMLでいうSELECTタグのような例えば日本全国都道府県名を登録させておいたり、
好きなタレント名10人とか登録させてそこからマウスで選ぶということができるのでしょうか?
(VBAを使わずに)
今までは全部手書きで毎回使う定型文章なのに・・・と苦労してます。
入力規則のリストでも使えよ
875 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 13:18:53
自己入門書ぱらぱらと見てたらレス入力規則とか?
876 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 13:22:39
勉強というのはアレですがやっぱ情報知識が不足しているため遠回り・時間の無駄してるなぁ
超々初心者がコピー&ペーストも知らないで1から全部書き直したり
ヤフオクで改行<br>を知らないために(ryとかね
878 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 13:27:42
入力規則ですよねやっぱそういえば昔知ってたのに(´・ω・`)ショボーン
これに都道府県全部をコンマ区切りで登録しておけばいいわけですよね
879 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 13:29:40
>>877 そうなんですよね。本当に便利なモノがフリーであったりしますよね。
でも自分の性格上お気に入りに登録してそのうちに・・・
これがダメなんですよねw
なんとかしないと
880 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 13:32:59
まぁ要するにセルへのコピペ作業がとんでもなく面倒なので何か自分にぴったりあったのが見つかれば
いや見つけないとダメですよね
881 :
独り言:2005/11/04(金) 13:47:49
ネット、PCなど操作に詳しい引きこもりやニートがたくさんいる。
せっかく技術があるんでそれを「収入」に結び付けてやりたいね。
「こんなことをやりたい(アイデア力)」+「ヒキーの技術力」
まぁ当然スキルがあって起業したり働いたり少なくともパートバイトはている人間も多数いるんだけど
スキルと知識があって人間関係とか精神的な問題で働けない人への支援を(ry
堀江社長も言ってね 引きこもりでゲームしている人にその技術をお金に変えろろと
882 :
独り言:2005/11/04(金) 13:48:58
まぁ自分はスキル無しのヒキーなんですけどねw
何が言いたいんだろう?
884 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 14:26:05
【1 OSの種類 】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
コピー&ペーストした時にセルの枠線まで持ってきてしまいます。
どうすれば枠線をコピー&ペーストしなくてすみますか?
お願いします。
886 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 14:40:02
>>885 申し訳有りません。情報が足りませんでした。
「エクセルで作成した表を他のソフトへのコピー&ペーストで
セルの枠線(罫線とは別)まで持ってきてしまいます」
に訂正します。
>>886 いったんエディタにでも貼り付けた後、そのTab区切り情報をもう一回コピー→Wordにでもペースト。
888 :
886:2005/11/04(金) 15:23:59
>>887 それだと罫線まで消えてしまうんですけど・・・
単純にエクセルの設定でセルの枠線をコピペしないようには
出来ないのでしょうか?
889 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 15:29:32
会員登録フォームとパスワード
「会員登録」の際に既に獲られているIDの場合エラーになる
とかいうcgiを無料で配布してませんかね?
スレ違い?その会員IDとかをエクセルで管理していろいろしたいんで
>>888 意味が分からん。
おまいさんの言う「枠線」と「罫線」の違いを説明してくれ。
891 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 15:43:14
セルの境界線の悪寒
892 :
886:2005/11/04(金) 15:57:27
正式名称はなんですかね?
グリッド?
893 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 16:01:02
895 :
886:2005/11/04(金) 16:53:37
>>894 ペースト先はautocadLTなんです。
試しにメモ帳にペーストしても同じです。
>>895 だったら純粋に図として貼り付けたらいけるんじゃない?
Excelでコピー→Excelでshift押しながらメニューから[編集]-[図の貼り付け]で
図としての表を作成→できあがった図をコピーして他のアプリへ
これでメタファイルじゃなくなると思うけど、だめだったらペイント経由とかね。
>>895 AutoCADはもってないのでメモ帳で試してみたが、
Excelのワークシートで作った表をメモ帳にコピペしても、
罫線も枠線も持ってこないわけだが…。
普通にテキストしか貼り付かんよ。
898 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 18:16:13
エクセルで、A1に
他のシートの値(A1)を参照したのですが、
例
=[モナー.xls]Sheet1!$A$1
A2にも、モナー.xlsのA2をリンクしたいんです。
で、手入力とか修正すれば出来るんですが、
オートフィルだと出来ません・・・
かなりの量なので、かなり困ってます。
どうにかなりませんかねぇ。
899 :
886:2005/11/04(金) 18:35:11
>>897 事務所にも何台かpcがあって、枠線を持ってくるヤツと
そうでないヤツがあるので、エクセルの設定が違うのかと
思っていたんですが・・・
>>896 ありがとうございました。
>>898 セル番地に$を付けるのは、
「オートフィルとかでコピーしても参照先を変えるな」
という意味。
だから$A$1をいくらコピーしても、$A$1のままで変化するわけがない。
これで後はわかるでしょ。
902 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 19:47:28
値A 10 20 30 40 .....
値B 250 300 350 400....
があり、その組み合わせである値Cが決まります。
Cが最高になるABの組み合わせがわかるようなグラフを書きたいのですが
どのグラフを選んでもできないようです。グラフの特別なやり方などあるのでしょうか?
> その組み合わせで
組み合わせってだけ言われてもなぁ
組み合わせの条件まで書いてくれないとなんとも
それにグラフにするなら、まずは表を作ってからだろ
904 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 20:14:41
グラフタイトルをセルB4とリンクさせて表示する方法ってありますか?
905 :
902:2005/11/04(金) 20:27:05
A456
B
75595823174.9595864827.4595896066.7
80595989784.8596058094.8596106411.7
85596135984.9596202628.9596231369.1
90596189716.6596129737.1595996449.2
値はめちゃくちゃですが
この表で最高になるABの組み合わせがわかるようなグラフが書きたいです。
この数値は適当なのででないと思いますが…
お願いします
906 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 20:27:52
A 4 5 6
B
75595823174.9595864827.4595896066.7
80595989784.8596058094.8596106411.7
85596135984.9596202628.9596231369.1
90596189716.6596129737.1595996449.2
組み合わせって具体的に何?
やりたいことが頭の中にあるおまえは自分用語でも脳内補完できるだろうけど
俺等はおまえと同じ脳内補完は出来ないから、ちゃんと標準用語で説明してくれ
908 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 22:44:09
A列にXファイルを、B列にYファイルを読むことは可能ですか?
両方、テキストファイルです
909 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 22:46:15
あるセルに「これはみかんです。」と入力されているとします。
でも、みかんの部分はたまに変化する場合があり、"りんご"であったりする場合があります。
そのため、"みかん"の部分に、変数fruitsを用意して、
そのセルを「これはfruitsです。」とし、別のセルにおいて、
変数fruitsの値を定義するようにしたいのですが、
エクセルでそのようなことができますでしょうか?
できれば、マクロを使いたくないのですが。。
よろしくお願いします。
>909です。
あ、すみません。
自己解決しました。
911 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 22:54:15
XPHomeSP2 Excel2002を使っています。
例えばりんごの個数が5個の場合は容器はS
りんごの個数が8個の場合は容器はM
りんごの個数が12個の場合は容器はL
りんごの個数が13個の場合は容器はS+M
というように、容器の文字列を機械的に表示したいのです。
よければ方法を教えてもらえますか?
912 :
911:2005/11/04(金) 22:55:43
あ、すみません。
自己解決しました。
913 :
911:2005/11/04(金) 22:56:57
>>908 さぁ?
俺としては可能だけど、おまえにとって可能かどうかはわからない
>>911 > よければ方法を教えてもらえますか?
情報欲しいなら、自分も情報書こうね
>>1 > ★質問テンプレは必須じゃないけど、OSやExcelのバージョンやVBAの可否などの情報は必須。
916 :
名無しさん@そうだ選挙にいこう:2005/11/04(金) 23:05:04
>>915 そういう機能はないようにおもえるのですが。
つくるのでしょうけど・・・
918 :
908:2005/11/04(金) 23:26:21
>>918 デフォでその機能があるかどうかなんて一言も聞いてないじゃん
俺としては(VBA可だしコードも書けるから)可能だけど、
おまえにとって(VBAでの処理の可不可すらわからないから)可能かどうかはわからない
って意味で書いたんだけど
最初から
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
って書けば、コード貼って終わりの問題だし、
逆にVBA不可なら「不可能です」の一言で終わるのに、なんで最低限の情報すら書けないのかなぁ
それに「読み込み」ではなく結果としてAB列にXYファイルの内容が入ればいいならコピペでもいいじゃん
因みに情報後出し君にはコードは書かないのでよろしく
920 :
908:2005/11/04(金) 23:51:30
申し訳ない。しかし、どうして、MSはこの機能をつけないのか・・・
>>920 テキストファイルのインポートは出来るわけで
それ以上でもVBA使えば簡単にできるし
> MSはこの機能をつけないのか・・・
必要性が低いから
テキスト自体は読み込めるし、複数列データならcsvやtsvなどがある
テキスト2つを読むにしてもVBAでの処理も出来れば、別々のシートに読んで後から合わせてもいい
必要性が低いものも単一機能として組み込む方針なら、VBAなんてマクロ拡張は必要ないだろ
必要性が低いものは、必要とするユーザーが任意で機能を組み込めるように
マクロやアドインってものがある
>>920 みんなが言ってること理解できるまで
書き込むのやめてくれ
>>911 組み分けのケース数が少ないならIF関数で。>6を参照。
ケース数が多かったり変更が多いならVLOOKUP関数で。
ヘルプの使用例とかを参考にすればなんとかなると思うよ。
今度質問するときは、先に>1-2やテンプレのQ&Aをよく読んでね。
926 :
名無しさん@そうだ選挙にいこう:2005/11/05(土) 10:02:43
すみません。教えてください。OSはXPなのですが、F7キーで
カタカナ変換をしようとするとき、確定前ひらがな以外の文字で
うっかり変換すると、スペルチェックになってしまい、IMEの
キー設定をやり直さなければならないので激しく不便です。
EXCELでF7キーをカタカナ化専門にするには
(スペルチェックは使わないのでその機能を抹消してしまいたい。)
どうすればよいでしょうか?
テンプレ嫁
928 :
926:2005/11/05(土) 11:41:55
度々すみません。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 F7 スペルチェック 無効
教えてください。OSはXPなのですが、F7キーで
カタカナ変換をしようとするとき、うっかり確定前ひらがな以外
の文字で変換してしまうと、スペルチェックになってしまい、
IMEのキー設定をやり直さなければならないので激しく不便です。
EXCELでF7キーをカタカナ化専門にするには
(スペルチェックを無効化してしまいたい。)
どうすればよいでしょうか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 コピー
マイドキュメントを開くとAA.XLSとBB.XLSというアイコンがあります
でBB.XLSをダブルクリックして開きます
ここでマクロを使って
AA.XLSのA列を全部BB.XLSのA列にコピーしたいんです
どうすればいいんでしょう?
>>929 Private Sub Workbook_Open()
Workbooks.Open "AA.xls"
ThisWorkbook.Activate
>>734参照
End Sub
BB.XLSのブックオブジェクトに↑を貼れ
4行目は何をコピーしたいのかわからないので
>>734を参考にしてブック名とシート名のみ書き換えな
先に言って置くけど「AA.xlsを開かずに」とかの条件後出しはしないでね
931 :
名無しさん@そうだ選挙にいこう:2005/11/05(土) 22:33:21
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ?
どうぞ教えてください。
過去に作った既存のブックの中で、ある特定のブックだけ、開けると
なぜだか作業ウインドウが勝手に開いてしまいます。
ツール−オプションで起動時作業ウインドウのチェックは外しています。
作業ウインドウを消した状態で上書き保存してもダメでした。
このブックだけ立ち上げるたびにゾンビのように作業ウインドウが出てき
てしまいます。
どなたか作業ウインドウが出なくする方法ご存じですか?
ちなみに作業ウインドウの内容は「テンプレートヘルプ」となっています。
932 :
908:2005/11/05(土) 23:32:43
>>921 今回は控えたいと思います
>>922 簡単じゃないですよ。ここで悩みたくないですもの
>>923 そのとおりですがここでマクロを強いるのは酷というものです
検索した結果、2重ループ(ファイル数とファイル内行数)の内側ループをEOF判定にすると
エラー52 ファイル名または番号不明
とおっしゃる。
ファイルの終端条件に行番号を明示しないとだめのようです。
> ここでマクロを強いるのは酷というものです
そう感じる人が少ないから実装されないんだよ
全ての人があなたと同じ要望を持ってるなんて思わないように
大方の見解は「この程度のことは、必要な奴がマクロ使ってやればいい」だろ
> 検索した結果、2重ループ(ファイル数とファイル内行数)の内側ループをEOF判定にすると
> エラー52 ファイル名または番号不明
> とおっしゃる。
> ファイルの終端条件に行番号を明示しないとだめのようです。
おまえが間違ってるだけ
934 :
908:2005/11/06(日) 00:04:28
前半、ほんとに本心ですか。デフォでシート三個表示で、txt読み込むと一つですよ
後半、ルールに即さなかったですものね。コード書いても放置でしょうね。
いや、2ちゃんはこうでないとね
だな
まあ、自分に非があるんだから諦めも付くだろ
937 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 00:36:34
エクセルのシート名を変更する方法(ダブルクリックで変更)
以外にショートカットキーがあれば教えて下さい。
938 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 00:44:07
939 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 02:39:13
横軸が 0 50 100 50 0 という離散図グラフは描けますか?
具体的には a0% a50% a100%(=b100%) b50% b0% という下のような形です
0,3 50,5 100,7 50,9 0,11
普通にやると0%で3と11,50%で5と9,と1つのxに2つのyが対応してしまって・・・
940 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 02:47:28
Excel2003で作成したデータをExcel95で読み込もうと思ったら無理でした。
Excel97なら読み込むことは可能なのでしょうか?
どなたかご存知の方がいらしたら教えてください。
941 :
908:2005/11/06(日) 07:36:45
ったくよぉ、手間だぜ
>>931 それはきっとMicrosoft Office Onlineからダウンロードしたテンプレートなんじゃね?
ダウンロードするときに「ヘルプウィンドウを表示しますか」みたいなメッセージがでるのよ。
そこで「はい」を選択すると、開く度にゾンビウィンドウが表示される。
よくわかんないけどレジストリに書き込まれてんのかな。
少し調べたけどわからんかった。
×で閉じたほうが早そうだよ。
908さん、
>>920のぼやきについてですが
別テーブルのフィールドをまとめるってのはSQL使うのが普通なのでは?
だからそういいうのはAccessで簡単にできるようになってる。
Officeってそういうもんでしょ。
それをExcelでやりたいのなら、面倒がらずに知恵を絞るしかないと思うよ。
何でもかんでもMicrosoftのせいにすんのはどうかと…。
>>939 普通は無理だと思う。
どうしてもというなら、重なる値のどちらかをマイナスにして
散布図でグラフを作り、目盛の数値をオフにしてダミーの目盛を
テキストボックス等で作る。
見掛けだけならこれでできるんじゃないかな。
>>940 2003でExcel95用の保存形式を取ればいいこと。
保存時にファイルの種類を「Microsoft Excel5.0/95ブック」にする。
ただし当然ながら、2003にしかない機能で作った部分は保存されない。
すでにできあいの2003データがあって、再保存はできないというなら
あきらめる。97だろうが2000だろうが読めないのは同じ。
945 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 09:32:47
【1 OSの種類】 Windows x-p
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 マクロの記録程度(?)
【4 VBAでの回答の可否】 他に方法が無さそうなのでご指導願います。
事務書類シート中の横長の単独セルに1日〜31日までを均等割り付けして有ります。
別のシートには当月顧客データとして1〜31まで31個のセルが用意されております。
顧客データのセルには○か◎が入ります。
(ここまでは自力で出来ましたが、以下の動作をさせられません。)
たとえば、顧客データの1,5,23に○、◎、○と有ったら、
対応する事務書類シートの1,5,23の上に○、◎、○が重なって欲しい。
尚、顧客データは全員分1シートにまとまっており、
別シートの事務書類は1シートだけあります。
事務書類の“顧客名”を入力すると他の必要事項は顧客データより全て反映されます。
○や◎を重ねる方法は事務書類の1〜31が1つのセルに割り付けてあるため、
テキストボックスを31個100%透過で日付セルに重ねて、
顧客データの対応する○又は◎を入力出来たらと思います。
テキストボックス内に計算式が埋め込めない様なので、マクロ使用ですか?
毎月、顧客全員の事務書類を製作する為、現状では○や◎が無い状態で全員分を作成して、
せっせと手書きで○、◎を付けております・・・。
何とか知恵をお貸し下さい!
長文で申し訳ない!
>>945 >テキストボックス内に計算式が埋め込めない様なので
この部分に関しては、
>>367 で対応できませんか?
947 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 11:20:43
vbaで、文字列に対して、ある特定の文字([a-g]など)が何文字続いているか関数で調べる方法はないでしょうか?
948 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 11:36:20
>>945 的外れだったらスルーしてね
1.当月顧客データには、あらかじめ全角スペースを入力しておく
2.事務書類シートには、連結式で
=当月顧客データ!セル番地1&・・・&当月顧客データ!セル番地31と入力
3.フォントタイプをポーショナル以外に設定する
ちょっとバカっぽいかな?どうでしょう。
950 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 12:29:02
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
入力必要なセルへの書き込みが完了すると、別の起動済みソフトへ
フォーカスを移動させようとしています。
たとえばA1に文字が入力されたあと、別の起動済みソフトtest.exeをアクティブ
する。といった感じです。
VBAは判らないのですが、なんとかALT+Tabの操作をマクロで行うことは
出来ました。
ただ、この場合、起動されたソフトがexcel.exeとtest.exeのみのときだけ
成功し、この2者の間に違うソフトがあると、そのソフトをALT+Tabで
選択してしまい、うまくいきませんでした。
そこで特定のウィンドウをアクティブにする方法を教えてください。
ついでになりますが、これも教えてください
フォーカスを移したあとについて。test.exe上でキーボード操作を一つ行って
再びエクセルをアクティブにしなおすことは、マクロでも可能なのでしょうか?
951 :
945:2005/11/06(日) 12:43:34
早速の御回答頂き、有難うございます!
事務書類シートの印刷範囲外の別のセルに、
顧客シートの内容(1〜31日とそれに対応する○◎)を反映。
そこからテキストボックスに反映で出来ました!
テキストボックスが事務書類1枚あたり31個必要で、
当方の作業には同様の事務書類が4種類・・・。
頑張ってテキストボックスを配置します!
更に質問なのですが、
顧客データの日付欄に○か◎か空欄が入るのですが、
最初と最後の日を別のセルに表示させてい場合はどうでしょう?
たとえば、5、8、28日に○で、
3、9、25日に◎がついている顧客の場合、
当月最初のセルに3で、当月最終のセルが28と表示させたい場合です。
お蔭様でだいぶ作業がはかどりそうです!よろしくお願いおいたします!
952 :
名無しさん@そうだ選挙にいこう:2005/11/06(日) 13:24:29
>>950 findWindow
findWindowEX
postMessage
あたりを使えばできる。WinAPIの話なので,VBスレで聞いた方がいい。
多分スレ違い。
>>950 >たとえばA1に文字が入力されたあと
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
End Sub
>別の起動済みソフトtest.exeをアクティブする
Excelに関することで、テンプレの3=いいえ、4=可ならコード書いてやるところなんだが
「VB言語(VBA)で、特定ウィンドウをアクティブにする」というのは、
全くExcel関係ないので952も言ってる通りスレ違い
とりあえずAPI以外だとwshのAppActivateの後Sendkeysでも可能というヒントだけあげる
SendMessage、PostMessageの方がいいとは思うけど
>>951 >当月最初のセルに3で、当月最終のセルが28と表示させたい場合です。
このスレを読むと答えが書いてある