ちくのう症(蓄膿症)は「菌」が原因!?

テキストエリアの文字を1行ごとにカウントさせたいのです。
現在は半角なら0.5、全角なら1.0としてカウントさせて、これを行ごとに分散させたいのです。

未達の条件
・改行、スペースはカウントしない
・各行ごとのカウントになっていない

<!doctype html>
<html>
<head>
<meta charset="euc-jp">
<title>テキストエリアの文字カウント</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1 …
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1 …
<script>

function ShowLength( str ) {
len = 0;
for(i=0;i<str.length;i++) {
var c = str.charCodeAt(i);

if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)){
len += 0.5;
}
else { len += 1; }
}
len = parseFloat(len).toFixed(1)
document.getElementById("inputlength01").innerHTML = len;
document.getElementById("inputlength02").innerHTML = len;
document.getElementById("inputlength03").innerHTML = len;
}
</script>
</head>
<body>
<table>
<tr>
<th>行別カウンター</th>
<td>
<textarea id="input_text" placeholder="" name="summary" rows="5" onkeyup="ShowLength(value,'inputlength');"></textarea>
<div class="countWrrap">
<div class="countDsign">
<ul>
<li id="comment01">1行目: <span id="inputlength01">0.0 </span>/ 35</li>
<li id="comment02">2行目: <span id="inputlength02">0.0 </span>/ 35</li>
<li id="comment03">3行目: <span id="inputlength03">0.0 </span>/ 35</li>
</ul>
</div>
</div>
</td>
</tr>
</table>
</body>
</html>

質問者からの補足コメント

  • うーん・・・

    fujillin さま
    アドバイスありがとうございます。
    とりあえずご指摘を頂きました箇所を修正しました。
    現状では、行ごとに配列化して、それぞれの文字をカウント、指定の位置に表示させることができました。ですが、今度は、半角と全角がそれぞれ1文字ずつのカウントになってしまったようで判定の処理がスルーされてしまっているようです。

    以下変更箇所の抜粋

    function ShowLength( str ) {
    var len = 0;
    //分割処理
    var arr = str.split(/\r\n|\r|\n/);
    for(i=0;i<arr.length;i++){
    }
    //

    ("inputlength01").innerHTML = len;
    を以下の形式に変更
    ("inputlength01").innerHTML = arr[0].length;

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/09/20 18:34

A 回答 (2件)

ANo1です。



う~~~ん・・・

・・とりあえず、
>useNum = str.split(/\r\n|\r|\n/);//これが機能していない感じ
直後にuseNumの内容を調べてみれば、きちんと機能していることがわかると思います。
useNum(=配列)には改行で分割された1行ずつの文字列が取得できます。
通常は、str.split("\n") でも大丈夫だと思いますが、正規表現でもちゃんと動作します。
しかしながら、そのあとの文字チェックのループではもとの全文(str)を対象にループさせているので、なんのために1行ずつに分けたのわかりませんね。

さらには、そのループの中で
>var useNum = new Array();
>useNum.push(len);
としているので、変数宣言に関しては巻き上げられますが、useNum = new Array()の部分は実行されます。
結局、1文字チェックする毎にuseNumを初期化して、それに変数lenをpushしていることになります。
そのあとで、(多分デバッグ用に?)
>console.log(useNum);
となさっていますが、useNumの値は予定通りの内容になっていますか?
この結果、最初に1行ずつに分けたuseNumの内容はすぐに破棄されるので、意味のない処理をしていることになりませんか?

>ShowLength.innerHTML = len.toFixed(1);
ShowLengthは実行中の関数名のはずですが、関数のinnerHTML属性にlen.toFixedの値を代入してどうしようというお考えでしょうか?
(javascriptでは関数もオブジェクトなので、処理自体はエラーにはなりませんが…)

>~~~.innerHTML = useNum[0];
>~~~.innerHTML = useNum[1];
ループの計算でuseNumは初期化されているので、1要素の配列になっているはずです。
また、この値は最後にチェックしたlenの値が入っているはずですが、これを表示したいわけではないと思いますが?
さらに、useNum[1]、 useNum[2]は存在しないので、常にundefinedが出力されるものと想像します。

その他に、
>str = str.replace(/\r\n|\n|\r/g, "");//改行削除
ループ内で毎回処理をしていますが、1度行えばよい処理のはずですので、効率を考えればループの外で処理すべきではないでしょうか?
というよりも、本来なら
>useNum = str.split(/\r\n|\r|\n/)
ですでに改行は取り除かれている文字列を処理するはずなので、不要な処理とも言えます。

HTMLを見てみると、table表示にしていますが、1行2セルのみの構成で、ほとんどの内容が後のセル内にありますが、tableにする意味があるのか疑問です。


などなど、他にもありそうですが・・・
1行ずつ分割したなら、その各行に対して「質問者様がなさりたい文字数計算」を行って、結果をそれぞれの表示用要素に表示するようになさりたいのではないでしょうか?
処理の流れを、もう一度きちんと整理なさってからスクリプトを記述なさった方が良いかもしれません。
また、前回も指摘しましたが、3行決め打ちのスクリプトにしてしまうと、1行しかない時や4行以上ある時に予想外の結果となることがありますので、注意なさった方がよさそうに思います。


なんとなく、なさりたいことが見えてきましたので、似たようなものを作成してみました。
と言っても、全体的に構成をだいぶ変えてしまいましたので、あくまでもご参考としてのものです。
3行までを限定として処理しています。(4行目以降は、存在しても無視)
なお、(どこかに書いてあったように思いますが)スペースの削除はしていません。

<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>

<style type="text/css">
h4 { display: inline-block; }
span.length { margin: 0 0.5em; }
#countWrap { margin-left: 6em; }
</style>

</head>
<body>

<div>
<h4>行別カウンター</h4>
<textarea id="input_text" name="summary" rows="5"></textarea>
</div>

<ul id="countWrap">
<li>1行目:<span class="length">0.0</span>/ 35</li>
<li>2行目:<span class="length">0.0</span>/ 35</li>
<li>3行目:<span class="length">0.0</span>/ 35</li>
</ul>


<script type="text/javascript">

function C(c, c1, c2){ return c >= c1 && c < c2; }

function codeCheck(c){
return C(c,0x0,0x81) || C(c,0xff61,0xffa0) || C(c,0xf8f1,0xf8f4) || (c==0xf8f0);
}

function countLength(s){
var i, len = 0;
for (i=0; i<s.length; i++){ len += codeCheck(s.charCodeAt(i))?1:2; }
return (len/2).toFixed(1);
}


document.getElementById("input_text").addEventListener("keyup", function(){
var i, strs = this.value.split("\n");
var elms = document.querySelectorAll("#countWrap span.length");
for(i=0; i<3; i++){
elms[i].innerHTML = countLength(strs[i] || "");
}
}, false);

</script>
</body>
</html>
    • good
    • 0
この回答へのお礼

コードのサンプルまで用意していただきましてありがとうございます。

まさに理想としていた動きを確認できました!
加えて、多岐にわたるご指摘を頂きまして今後の励みにもなります。

重ねてお礼申し上げます。

お礼日時:2017/09/22 14:29

こんにちは



なんだかいろいろありそうですが・・・

文字コードの判定部分の内容は確認していませんが、とりあえず一番の原因はループ内で
 len = parseFloat(len).toFixed(1)
としていることではないでしょうか。(文末のセミコロンはここだけ省略?)

toFixedで返される値は文字列になりますので、次回のループで
 len += 0.5;(またはlen += 1;)とする際には文字列連結の演算になります。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
このため、数値の加算にはならないので、思うような結果にならないものと推測します。

表示を必ず少数以下一桁としたいのであれば、変数lenは数値のままとして、表示するときだけ文字列変換を行えばよろしいかと。
具体的には、
 len = parseFloat(len).toFixed(1) を削除し、表示の際に
 element.innerHTML = len.toFixed(1);
などとするとかでしょう。

その他に気が付いたのは、
・jQueryを読み込んでいるけれど、実際には使用していない。
・ShowLength(str)は1引数として定義されているが、HTML内の呼出しでは引数が2つ
・関数呼出しのShowLength(value)の引数Valueはthis.valueなどとしておく方がよさそう。


>未達の条件
>・改行、スペースはカウントしない
>・各行ごとのカウントになっていない
文字列全体をいきなり1文字ずつ解析するのではなく、まず改行コード(\n)で分割して、それぞれの行について解析するようにすれば良いのではないでしょうか。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
(4行以上入力されている場合の処置もお忘れなく)

スペースをカウントしたくないのであれば、解析前にスペースを削除しておけば良いでしょう。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
この回答への補足あり
    • good
    • 0
この回答へのお礼

fujillin さま
アドバイスありがとうございます。
とりあえずご指摘を頂きました箇所を修正しました。
現状では、行ごとに配列化して、0.5単位での加算まで再現できています。
あとは、これを行別に表示させたいのですが、1行目に全ての加算値が表示されてしまいます。


<script>
function ShowLength( str ) {
var len = 0;
useNum = str.split(/\r\n|\r|\n/);//これが機能していない感じ
//文字サイズのチェック
for(i=0;i<str.length;i++) {
str = str.replace(/\r\n|\n|\r/g, "");//改行削除
var c = str.charCodeAt(i);

if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)){
len += 0.5;
}
else { len += 1; }

var useNum = new Array();
useNum.push(len);
console.log(useNum);

}

ShowLength.innerHTML = len.toFixed(1);

document.getElementById("inputlength01").innerHTML = useNum[0];
document.getElementById("inputlength02").innerHTML = useNum[1];
document.getElementById("inputlength03").innerHTML = useNum[2];
}

</script>

お礼日時:2017/09/21 10:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qjavascript初心者です。

javascriptでファイルを別で作成する際の質問です。

<html>
<head>
<script type="text/javascript" src="script.js"></script>
<script src="jquery-3.2.1.min.js"></script>
</head>
<body>
</body>
</html>

head内にこのように記述したのですが、
script.jsファイルに記述しても反応がありません。
body内に記述した場合は正常に動作します。
原因として考えられることを教えて頂けると幸いです。

Aベストアンサー

ANo1です。

実際の内容がわからないので、なんとも言えませんが、script.jsの内容を
 alert("OK");
程度のものにしても動作しないでしょうか?
あるいは、ブラウザの開発ツールなどにエラー表示が出ていたりしないでしょうか?

QHTML5のことについてなのですが……

私は現在javascriptのものをHTML5に書き換えるということをしています。
色々な方に手伝ってもらったのですが、どうにも後少しが届きません。
モノは
https://chaos.keiei.shikoku-u.ac.jp/ProtoType/
をHTML5に書き換えたいと思っているのですが、詳しい方、また教えるのが苦ではない方はどうかお力をお貸しいただけないでしょうか?
私は圧倒的に知識が不足していて、あまりわかりませんので。

Aベストアンサー

こんにちは

>javascriptのものをHTML5に書き換えるということをしています
意味がよくわかりません。
「HTML4.0をHTML5に」などであればわかるのですが・・
ほとんどがjavascriptで生成されているページをjavascriptを使用しないように書き換えたいという意味にも取れますが、ご提示のページのような場合、採点をするのには何らかのプログラムが必要になると思います。

javascriptを排除したいのなら、その部分をどのような仕組みで代替しようと考えていらっしゃるのでしょうか?
例えば、サーバ側のプログラムで採点するというものも考えられますが、その場合は構成がまったく別のものになると思われます。

一方で、ご提示のページはjavascriptを利用する前提で作成されているように見受けられますが、単にマークアップをHTML5になさりたいということであれば、
 http://www.htmllint.net/html-lint/htmllint.html
などを利用してチェックすることで、比較的簡単に実現できると思います。

ちなみに、以下はご提示のページをチェックしてみた結果です。
◇修正した方が良さそうな指摘
line 9:<HEAD>〜</HEAD> 内には <TITLE> が必要です。
line 20:<H3> の ID 属性の値 `q_title` は 18行目ですでに使われています。

◇厳密には正しくないかもしれないが、かなり軽微な指摘
line 31:<BUTTON> には TABINDEX 属性を指定するようにしましょう。
line 31:<BUTTON> には ACCESSKEY 属性を指定するようにしましょう.
line 37:<BUTTON> には TABINDEX 属性を指定するようにしましょう.
line 37:<BUTTON> には ACCESSKEY 属性を指定するようにしましょう。
line 63:<BUTTON> には TABINDEX 属性を指定するようにしましょう。
line 63:<BUTTON> には ACCESSKEY 属性を指定するようにしましょう。


なお、ご提示のページはdivを主体とした構成になっているようですが、HTML5では、内容を示すための要素(section article nav header footerなど)が追加されていますので、意味を持たないdiv要素はこれらに属さない場合に用いるようになっているようです。
以下はHTML5の解説サイトの一例です。ご参考まで。
http://www.html5.jp/

javascriptの内容は見ていませんが、どこかが思ったように動作しないということであれば、「◇◇の際に○○を△△にしたいのだけれど、××になってしまう」といったように具体的に質問をなさらないと、
>どうにも後少しが届きません。
というだけでは、何をなさりたいのかは「知る人ぞ知る」ということになってしまいます。

こんにちは

>javascriptのものをHTML5に書き換えるということをしています
意味がよくわかりません。
「HTML4.0をHTML5に」などであればわかるのですが・・
ほとんどがjavascriptで生成されているページをjavascriptを使用しないように書き換えたいという意味にも取れますが、ご提示のページのような場合、採点をするのには何らかのプログラムが必要になると思います。

javascriptを排除したいのなら、その部分をどのような仕組みで代替しようと考えていらっしゃるのでしょうか?
例えば、サーバ側のプログラ...続きを読む

Qcsvファイルを読み込み、該当項目をhtmlに表示する方法

下記のようなcsvファイルがサーバ上にあり、毎日最新情報に更新されます。
サーバ上の同階層にあるHTMLページに、csvファイルの一部に該当する項目を
表示したいのですが、どのようにしたら実現できるのかわかりません…。
どうか助けてください。よろしくお願いいたします。

■csvファイル(data.csv)
種類,国,売上目標,売上実績,前年売上
りんご,国内,100,90,80
バナナ,国内,100,80,90
りんご,海外,100,110,100
バナナ,海外,100,50,80

■HTMLページ(index.html)
売上達成率【国内】りんご90% (前年比+10) | バナナ80%(前年比-10)
売上達成率【海外】りんご110%(前年比+10)| バナナ50%(前年比-30)

※マイナスになっている場合は赤字にしたいです。

Aベストアンサー

No.5&6です。何も表示されなかったとのことですので、
試しにfc2にアップロードしてみましたので、下記URLでも表示されないでしょうか。

https://fjicode.web.fc2.com/gooqa/9928341/index.html

もし上記サイトでうまく表示されましたら、上記サイトのソース表示から取得した方が手っ取り早いかもしれません。

Qどこがおかしいのか教えてください。

ファイルで
file170901.jpg
file170902.jpg
file170903.jpg
file170904.jpg
   ・
   ・
   ・
file170908.jpg

とあってこれは170908部分は日付なので
当日170908以外のファイルを消したいので
(当時以外の31日前からのファイルを削除しようとしています)
下記のコードを書いたのですがうまくいきません
どこがわるいのでしょうか?

教えてください。

--------------------------------------------------

#!/usr/local/bin/perl

for($cnt = 31 ; $cnt = 1 ; $i = $i - 1) {

$tm = time - $cnt * 60 * 60 * 24;

($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime($tm);

$nitizi = sprintf("%02d%02d%02d",($year+1900)-2000,$mon+1,$mday);

$setfile = './file'.$nitizi.'*.jpg';

#unlink glob($setfile);

}

exit;

ファイルで
file170901.jpg
file170902.jpg
file170903.jpg
file170904.jpg
   ・
   ・
   ・
file170908.jpg

とあってこれは170908部分は日付なので
当日170908以外のファイルを消したいので
(当時以外の31日前からのファイルを削除しようとしています)
下記のコードを書いたのですがうまくいきません
どこがわるいのでしょうか?

教えてください。

--------------------------------------------------

#!/usr/local/bin/perl

for($cnt = 31 ; $cnt = 1 ; $i = $i - 1) {
...続きを読む

Aベストアンサー

何故、./file170808*.jpgのようなワイルドカードにしているのかは、判りませんが、それは置いといて、
for($cnt = 31 ; $cnt = 1 ; $i = $i - 1) {

for($cnt = 31 ; $cnt > 0 ; $cnt--) {
        ^^^^^^^^^^^

$tm = time - $cnt * 60 * 60 * 24;

$tm = time() - $cnt * 60 * 60 * 24;
   ^^^^^

に変えてください。

QVBA教えてください

以下のようにテキストファイルに記入されている文字列をエクセルに抽出したいのですが
なかなか思うようにいきません。

<テキストデータ>
項 A B C D
1 40
2 30
3 20

<エクセルに抽出したいデータ>
1 40
2 30
3 20


どなたかお詳しい方いらっしゃいましたら教えて頂けると幸いです。

Aベストアンサー

大変遅くなりました。以下のような感じはいかがでしょうか?
---------------------------------------------------------------------------------
Sub Sample()
Dim 対象ファイル As String
Dim 行データ As String
Dim 位置 As Long
Dim 対象位置 As Long
Dim 文字数 As Long
Dim 対象 As Boolean
Dim 行 As Long
Dim 比較文字 As String
Dim 数字 As String
対象ファイル = Application.GetOpenFilename("テキスト ファイル,*.txt")
If 対象ファイル = "False" Then Exit Sub
Open 対象ファイル For Input As #1
Do Until EOF(1)
Line Input #1, 行データ
If 対象 Then
If 対象位置 > Len(行データ) Then 対象 = False
If Mid(行データ, 1, 1) < "0" Then 対象 = False
If Mid(行データ, 1, 1) > "9" Then 対象 = False
If Mid(行データ, 対象位置, 1) < "0" Then 対象 = False
If Mid(行データ, 対象位置, 1) > "9" Then 対象 = False
Else
比較文字 = ""
For 位置 = 1 To Len(行データ)
If Mid(行データ, 位置, 1) <> " " Then
比較文字 = 比較文字 & Mid(行データ, 位置, 1)
If Mid(行データ, 位置, 1) = "D" Then 対象位置 = 位置
End If
Next
End If
If 対象 Then
行 = 行 + 1
数字 = ""
For 位置 = 1 To 対象位置
If Mid(行データ, 位置, 1) < "0" Then Exit For
If Mid(行データ, 位置, 1) > "9" Then Exit For
数字 = 数字 & Mid(行データ, 位置, 1)
Next
Cells(行, 1).Value = 数字
数字 = ""
For 位置 = 対象位置 To Len(行データ)
If Mid(行データ, 位置, 1) < "0" Then Exit For
If Mid(行データ, 位置, 1) > "9" Then Exit For
数字 = 数字 & Mid(行データ, 位置, 1)
Next
Cells(行, 2).Value = 数字
Else
If 比較文字 = "ABCD" Then 対象 = True
For 位置 = 1 To Len(行データ)
If Mid(行データ, 位置, 1) = "D" Then 対象位置 = 位置
Next
End If
Loop
Close #1
End Sub
---------------------------------------------------------------------------------

大変遅くなりました。以下のような感じはいかがでしょうか?
---------------------------------------------------------------------------------
Sub Sample()
Dim 対象ファイル As String
Dim 行データ As String
Dim 位置 As Long
Dim 対象位置 As Long
Dim 文字数 As Long
Dim 対象 As Boolean
Dim 行 As Long
Dim 比較文字 As String
Dim 数字 As String
対象ファイル = Application.GetOpenFilename("テキスト ファイル,*.txt")
If 対象ファイル = "False" Then Exit Sub
Open 対象ファイル For Inp...続きを読む

Q教えて下さい。 phpで作成しています、データ一覧表示の画面があります。 画面表示の時点でデータを全

教えて下さい。
phpで作成しています、データ一覧表示の画面があります。
画面表示の時点でデータを全件表示しており、それに対するページング(js)の機能もつけています。

検索ボタンで入力条件通りのデータをajaxを使って
非同期(画面リロードなし)で表示していますが
ページングが動きません。(最初の全件データ分の
ページングが表示されたままの状態です)

一般的なJQeryのページングを使っているのですが単純にリロードされていないから読み込まれていないということなのでしょうか?

また、ページのソースを見ても(右クリックでソース表示)最初の全件がHTML上では表示されています。
そもそも非同期で取得したデータはソース上は表示されないものなのでしょうか?(innerhtmlで記述)

初心者でわからないことだらけで申し訳ありません。
何かとっかかりがあればと思いますのでご教授下さい。

非同期でのページングのやり方など教えてもらえると助かります。

長々と書いてしまいましたがよろしくお願いいたします。

リロードしていないからjsが動かないのかと思うのですが

教えて下さい。
phpで作成しています、データ一覧表示の画面があります。
画面表示の時点でデータを全件表示しており、それに対するページング(js)の機能もつけています。

検索ボタンで入力条件通りのデータをajaxを使って
非同期(画面リロードなし)で表示していますが
ページングが動きません。(最初の全件データ分の
ページングが表示されたままの状態です)

一般的なJQeryのページングを使っているのですが単純にリロードされていないから読み込まれていないということなのでしょうか?

ま...続きを読む

Aベストアンサー

こんにちは


通常の「ページのソース表示」は、サーバから送られたHTMLのソースを表示します。
その後スクリプト等でDOMを変更しても、それは「ソース」ではないので、反映されることはありません。
実際に表示されているDOMの状態を知りたければ、スクリプトでinnerHTMLなどを取得して表示すれば見られます。
最近のブラウザであれば、デバッグツールが付属していると思いますので、そちらから参照するのが簡単ではないでしょうか?
(ツールのHTMLタブなどから参照できると思います)


実際の内容がわからないので、以下は、単なる推測にすぎませんが・・・

>一般的なJQeryのページングを使っているのですが~~
多分、ライブラリか何かを利用しているのではないかと推測します。
最初に初期設定を行っていると思いますが、設定がそのままなので、ajaxで内容が変わってもライブラリにとってはもとの状態のままと認識して、その後の処理ではエラーが発生していたりするのではないでしょうか?
対象データが変わった時点で、再度、初期設定をしてあげれば動作する可能性が高いと思います。


一方で、
>画面表示の時点でデータを全件表示しており~~
とのことなので、全件を一括読み込みしているのなら、検索といっても単に「絞り込む」だけでしょうから、わざわざajaxで通信処理などをしなくてもローカル側で直接絞り込めば(javascript利用)済みそうに思います。
データ件数分の表示/表示のフラグを持つだけで実現できそうなので・・・

利点としては、レスポンスが速くなるであろうことと、サーバ側の負荷が減ることぐらいでしょうか。
件数が膨大な場合はajaxが有効とは思いますが、その場合は、最初に全件読み込みは行わないであろうと思います。(膨大なので)

こんにちは


通常の「ページのソース表示」は、サーバから送られたHTMLのソースを表示します。
その後スクリプト等でDOMを変更しても、それは「ソース」ではないので、反映されることはありません。
実際に表示されているDOMの状態を知りたければ、スクリプトでinnerHTMLなどを取得して表示すれば見られます。
最近のブラウザであれば、デバッグツールが付属していると思いますので、そちらから参照するのが簡単ではないでしょうか?
(ツールのHTMLタブなどから参照できると思います)


実際の内容がわからない...続きを読む

Q全てのテキストボックスをセルに出力

VBAを使ってシート上の全てのテキストボックスのテキストを取得・出力するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいと思います。

環境:Windows10 Office2016

状況:
既存のエクセルシートに約100個以上のテキストボックスが作成されており
一覧を作成するためにセルにコピーしたい。

テキストボックスの並び順などは一切こだわりません。
そもそも実現可能かでもご存知の方いらっしゃいましたらお教えください。

Aベストアンサー

> 上記は出力結果の例ですが、数字部分はテキストの作成順を表すものでしょうか。
> そうであれば、例えば新規に追加した図形は textbox 164 となるべきだと思いますが

Excelが勝手に付ける番号って以上は、特に決まり無いのでは。
手動でtextbox 165とか、textbox 9999999とか作ったとして、次に連番振らなきゃならないって事もないでしょうし。


> If tx.Type = msoTextBox Then
> のほうが良いかと。

良さげですね。

Qプログラミング

プログラミングを学びたいんですが最初にある程度プログラミングができるようになってからアルゴリズム論を学ぶ方がいいですか?それとも最初にアルゴリズム論を学んだ方がいいですか?

Aベストアンサー

何の言語か知りませんが、最初に、アルゴリズムなどに手をつけたら、闇の中だと思いますね。よく、構文と勘違いしている人がいますね。

アルゴリズムの定義をどういうように解釈しているのか分かりませんが、アルゴリズムはコンピュータやプログラミング言語に依存しません。一般的な定義は「問題を解くための論理または手順」のこと。また、コンピュータのプログラミング向きでもないものも存在します。

一度は、丁寧に勉強しましたが、私は、ほとんどアルゴリズムは分かっていません。たぶん、古典的なものは、コンピュータのない時代に数学の天才が作ったものだと思いますが、囲碁や将棋の定石のような解釈しかしていません。VBAなどでは、アルゴリズムを使った人など、年に一度、現れるかどうかですね。理由は、.NetFrameWork などの関数に、すでに包合されているからです。

ここのサイトの下に代表的なアルゴリズムの名称が出ています。

http://e-words.jp/w/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0.html

何の言語か知りませんが、最初に、アルゴリズムなどに手をつけたら、闇の中だと思いますね。よく、構文と勘違いしている人がいますね。

アルゴリズムの定義をどういうように解釈しているのか分かりませんが、アルゴリズムはコンピュータやプログラミング言語に依存しません。一般的な定義は「問題を解くための論理または手順」のこと。また、コンピュータのプログラミング向きでもないものも存在します。

一度は、丁寧に勉強しましたが、私は、ほとんどアルゴリズムは分かっていません。たぶん、古典的なものは...続きを読む

Q正規表現で、行頭の文字列が、!で始まる一行を

で囲みたい

正規表現で、行頭の文字列が、!で始まる文字列を<h1></h1>で囲みたいです
囲むのは!で始まる行の最初から最後までです
次の行は含めません。

検索:^\!
置き換え:

という形式で教えてください

Aベストアンサー

言語がわかりませんが
/^!(.*?)$/m

<h1>$1</h1>
に変えてみては?

QExcelでボタンを作りました。 このボタンを編集不可にしてなおかつクリックはできるようにすることは

Excelでボタンを作りました。
このボタンを編集不可にしてなおかつクリックはできるようにすることは出来ますか?

教えてください。

Aベストアンサー

もしかしたら「押せない」のではなく、書き込みエラーが出るとかではありませんか?
エラーが出るならマクロの方の問題だと思います。


人気Q&Aランキング